Rumah >Java >javaTutorial >Penggunaan anotasi @spy dalam ujian junit
Anotasi @Spy dalam JUnit, terutamanya apabila digunakan dengan Mockito, digunakan untuk mencipta pengintip pada objek sebenar. Perisik ialah olok-olok separa, yang bermaksud anda boleh mengejek beberapa kaedah objek sambil mengekalkan kelakuan sebenar kaedah lain.
Berikut ialah beberapa kegunaan biasa anotasi @Spy:
Mengejek Separa:
@Spy private List<String> spyList = new ArrayList<>(); @Test public void testSpy() { spyList.add("Mockito"); Mockito.verify(spyList).add("Mockito"); assertEquals(1, spyList.size()); Mockito.doReturn(100).when(spyList).size(); assertEquals(100, spyList.size()); }
Mengatasi Tingkah Laku Kaedah Sebenar:
@Spy private MyClass myClass = new MyClass(); @Test public void testSpyWithMethodOverride() { Mockito.doReturn("Mocked Value").when(myClass).someMethod(); assertEquals("Mocked Value", myClass.someMethod()); }
Mengesahkan Panggilan Kaedah:
@Spy private MyClass myClass = new MyClass(); @Test public void testMethodCallVerification() { myClass.someMethod(); Mockito.verify(myClass).someMethod(); }
Menggabungkan dengan @InjectMocks:
@Spy private MyDependency dependency; @InjectMocks private MyService service; @Test public void testService() { Mockito.doReturn("Mocked Result").when(dependency).doSomething(); assertEquals("Mocked Result", service.performAction()); }
Menguji Kod Warisan:
Ringkasnya, anotasi @Spy berguna apabila anda perlu mengawal atau mengesahkan gelagat tertentu objek sebenar sambil mengekalkan gelagat objek yang lain tidak berubah.
Atas ialah kandungan terperinci Penggunaan anotasi @spy dalam ujian junit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!