Pruebas con Dagger 2 usando configuraciones de componentes independientes en Android

La documentación Dagger 2 sugiere proporcionar diferentes configuraciones para pruebas y producción usando una interface para ProductionComponent y TestComponent , de la siguiente manera:

 @Component(modules = { OAuthModule.class, // real auth FooServiceModule.class, // real backend OtherApplicationModule.class, /* … */ }) interface ProductionComponent { Server server(); } @Component(modules = { FakeAuthModule.class, // fake auth FakeFooServiceModule.class, // fake backend OtherApplicationModule.class, /* … */}) interface TestComponent extends ProductionComponent { FakeAuthManager fakeAuthManager(); FakeFooService fakeFooService(); } 

Digamos que tenemos una actividad de Android ( MyApp ) que utiliza ProductionComponent :

 public class MyApp extends Application { private ProductionComponent component; @Override public void onCreate() { super.onCreate(); component = ProductionComponent.builder() .serverModule(new ServerModule()) .build(); } } 

Generalmente, ¿cuál es la mejor manera de usar DaggerTestComponent.builder() lugar de ProductionComponent.builder() en las pruebas de integración de Android?

No estoy seguro de cómo usar las falsificaciones; ¿Debo hacer una nueva actividad en /androidTest que extends MyApp ? ¿O debería pasar un nuevo DaggerTestComponent a MyApp usando un getter / setter cuando configuro mi prueba?

¿Qué tal usar robolectric con Mockito ?

Puede hacer códigos de prueba JUnit con @Test sin AndroidTest. Creo que usted hace la aplicación de daga de prueba con Mockito.

Referencias aquí

http://alexzh.com/tutorials/android-testing-mockito-robolectric/ http://sdudzin.blogspot.kr/2011/01/easy-unit-testing-for-android.html

  • Error al importar jar en un proyecto android
  • Android "gps requiere ACCESS_FINE_LOCATION" error, aunque mi archivo de manifiesto contiene este
  • TCP cliente / servidor de comunicación sólo envía el primer mensaje?
  • No se pueden agregar detalles del producto mientras se crea una nueva cotización
  • Mejorar la búsqueda en la matriz
  • Las etiquetas verticales de GraphView aumentan en entero desde 0
  • ¿Valores de diálogo y edittext de Android?
  • ¿Cómo obtengo una variable de un bloque try / catch?
  • RSA cifra con clave pública codificada en base64 en Android
  • Configuración de una alarma de repetición en android
  • Archivo de descarga de Android de problemas de memoria
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.