Estamos escribiendo pruebas JUnit para una clase que utiliza el autovínculo de Spring para inyectar una dependencia que es una instancia de una interfaz. Como la clase bajo prueba nunca instancia explícitamente la dependencia o la ha pasado en un constructor, parece que JMockit tampoco se siente obligado a crear una instancia.Uso de JMockit para simular implementaciones de interfaz autocableadas
Hasta ahora hemos estado usando SpringRunner para tener Spring load mock depencies para nosotros, que funciona. Dos cosas que no nos gustan de esto son 1) el marco Spring debe cargarse e inicializarse cada vez que se ejecutan las pruebas, lo que no es exactamente rápido, y 2) estamos obligados a crear explícitamente todas las dependencias simuladas como clases reales, algo que JMockit ayuda a eliminar.
Aquí está un ejemplo simplificado de lo que estamos probando:
public class UnitUnderTest {
@Autowired
ISomeInterface someInterface;
public void callInterfaceMethod() {
System.out.println("UnitUnderTest.callInterfaceMethod calling someInterface.doSomething");
someInterface.doSomething();
}
}
Entonces, la pregunta es, ¿hay una manera de tener JMockit crear una maqueta someInterface
?
ver también: http://stackoverflow.com/questions/1638911/mock-object-and-spring-annotations –