La anotación @Spy en JUnit, particularmente cuando se usa con Mockito, se aplica para crear un espía en un objeto real. Un espía es una simulación parcial, lo que significa que puedes simular algunos métodos del objeto manteniendo el comportamiento real de otros métodos.
Estos son algunos usos comunes de la anotación @Spy:
Burla parcial:
@Spy private ListspyList = 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()); }
Anulación del comportamiento del método real:
@Spy private MyClass myClass = new MyClass(); @Test public void testSpyWithMethodOverride() { Mockito.doReturn("Mocked Value").when(myClass).someMethod(); assertEquals("Mocked Value", myClass.someMethod()); }
Verificación de llamadas a métodos:
@Spy private MyClass myClass = new MyClass(); @Test public void testMethodCallVerification() { myClass.someMethod(); Mockito.verify(myClass).someMethod(); }
Combinando con @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()); }
Prueba del código heredado:
En resumen, la anotación @Spy es útil cuando necesitas controlar o verificar comportamientos específicos de un objeto real mientras mantienes el resto del comportamiento del objeto sin cambios.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3