Kaedah Tidak Sah Mengejek dengan Mockito
Bagaimanakah seseorang boleh mengejek kaedah dengan jenis pulangan tidak sah menggunakan rangka kerja Mockito? Soalan khusus ini sering timbul dalam senario di mana kaedah objek tidak mengembalikan nilai sebaliknya melakukan tindakan.
Mengatasi Cabaran
API Mockito menawarkan pelbagai pilihan untuk mengendalikan situasi ini, termasuk kaedah seperti doThrow(), doAnswer(), doNothing(), dan doReturn().
Contoh Pelaksanaan
Pertimbangkan contoh senario berikut:
public class World { private String state; // Setter for state public void setState(String s) { this.state = s; } } public class WorldTest { @Test public void testingWorld() { World mockWorld = mock(World.class); // Mock the setState method using doAnswer doAnswer(new Answer<Void>() { @Override public Void answer(InvocationOnMock invocation) { Object[] args = invocation.getArguments(); System.out.println("Called with arguments: " + Arrays.toString(args)); return null; } }).when(mockWorld).setState(anyString()); // Call the mock method and observe the output mockWorld.setState("Mocked"); } }
Dengan menggunakan kaedah doAnswer, kami boleh menentukan tingkah laku tersuai untuk kaedah setState olok-olok. Dalam contoh di atas, kami mencetak hujah yang dihantar kepada kaedah, memberikan keterlihatan ke dalam seruannya.
Atas ialah kandungan terperinci Bagaimana untuk mengejek Kaedah Void dalam Mockito?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!