Maison >Java >javaDidacticiel >Utilisations de l'annotation @spy dans les tests Junit
L'annotation @Spy dans JUnit, en particulier lorsqu'elle est utilisée avec Mockito, est appliquée pour créer un espion sur un objet réel. Un espion est une simulation partielle, ce qui signifie que vous pouvez vous moquer de certaines méthodes de l'objet tout en conservant le comportement réel d'autres méthodes.
Voici quelques utilisations courantes de l'annotation @Spy :
Moquerie partielle :
@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()); }
Remplacement du comportement de la méthode réelle :
@Spy private MyClass myClass = new MyClass(); @Test public void testSpyWithMethodOverride() { Mockito.doReturn("Mocked Value").when(myClass).someMethod(); assertEquals("Mocked Value", myClass.someMethod()); }
Vérification des appels de méthode :
@Spy private MyClass myClass = new MyClass(); @Test public void testMethodCallVerification() { myClass.someMethod(); Mockito.verify(myClass).someMethod(); }
Combinaison avec @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()); }
Test du code hérité :
En résumé, l'annotation @Spy est utile lorsque vous devez contrôler ou vérifier les comportements spécifiques d'un objet réel tout en gardant le reste du comportement de l'objet inchangé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!