Estoy tratando de escribir una prueba de Unidad para una clase que tiene varios de sus campos marcados como @Autowired. Dado el hecho de que Spring está resolviendo automáticamente las implementaciones concretas para estos campos, me está resultando difícil descifrar cómo conectar mis objetos Mock (creados a través de EasyMock) como las dependencias durante la prueba. Usar @Autowired en la clase significa falta de setters en esa clase. ¿Hay alguna forma de conectar mis objetos simulados sin crear setters adicionales en clase?Unidad probando una clase con notación autocableada usando Junit y EasyMock?
He aquí un ejemplo de lo que estoy tratando de lograr:
public class SomeClassUnderTest implements SomeOtherClass{
@Autowired
private SomeType someType;
@Autowired
private SomeOtherType someOtherType;
@Override
public SomeReturnType someMethodIWouldLikeToTest(){
//Uses someType and someOtherType and returns SomeReturnType
}
}
Así es como estoy visión del mundo en mi clase de prueba antes de chocar con la pared:
public class MyTestClassForSomeClassUnderTest{
private SomeType someType;
private SomeOtherType someOtherType;
@Before
public void testSetUp(){
SomeClassUnderTest someClassToTest = new SomeClassUnderTest();
someType = EasyMock.createMock(SomeType.class);
someOtherType = EasyMock.createMock(SomeOtherType.class);
//How to set dependencies????
}
@Test
public void TestSomeMethodIWouldLikeToTest(){
//??????
}
}
que será muy bueno para obtener una empujar en la dirección correcta.
Gracias
Gracias por la punta. –
http://stackoverflow.com/questions/16426323/injecting-into-autowired-variable-during-testing – Dan
EasyMock admite desde la versión 3.2 anotaciones similares a Mockito para inyección simulada. Ver mi respuesta – krm