La pregunta es, ¿son pruebas unitarias o pruebas de integración?
Si está realizando pruebas unitarias, le sugiero que use burlas a la manera antigua, utilizando un setter e intentando probar el código Java sin el marco de inyección de dependencia involucrado. Esto pondrá a prueba tu clase de forma aislada y evita una gran complejidad.
lo que quiero decir:
public class Test{
ClassInTest inTest;
MyInterface myInterface;
@Before
public void setup(){
inTest = new ClassInTest();
//or your favorite mocking frameowrk
myInterface = EasyMock.createMock(MyInterface.class);
inTest.setMyInterface(myInterface);
}
@Test
public void testMethod(){
//...mocking test code
}
}
Por supuesto, las pruebas de Actividades Android (y otras extensiones de Android) es difícil a causa de la excepción tirar talones y clases/métodos finales. Aquí es donde Robolectric es útil (y muy recomendable) para instanciar/sombrear la API de Android.
Si está realizando pruebas de integración, es posible que desee tomar otro enfoque. Personalmente, trataría de no burlarme durante las pruebas de integración mientras trato de probar la aplicación como se ejecutaría en producción. Pero, si realmente quieres burlarte, podrías usar un enfoque similar para las pruebas unitarias e introducir un simulacro después de levantar la clase de actividad generada. Cabe destacar que puede realizar pruebas de integración directamente en el hardware utilizando marcos como Robotium.
Más a su pregunta, no conozco ninguna instalación de AndroidAnnotaciones específicamente para inyectar Mocks o introducir Mocks en el árbol de dependencias inyectado de una aplicación.
¿Está buscando probar su clase o la clase generada por AndroidAnnotations? –
Quiero probar una clase que escribo. Quiero inyectar simulacros en la clase que escribo para el código de prueba e inyectar objetos "reales" para la producción. – apollodude217