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

  • ¿Hay algún diseñador de formularios disponible para Google Android?
  • Android cómo agrupar tareas asíncronas como en iOS
  • Android: enum vs static final ints?
  • Android: error con la interacción de fragmentos Interesante
  • Mejor manera de incluir el código de depuración?
  • Agregar el botón a PreferenceScreen
  • Android Studio: crea un proyecto Java sin dependencias de Android
  • No se puede resolver el símbolo 'GoogleCloudMessaging' GCM
  • Evitar que RecyclerView muestre contenido anterior al desplazarse
  • No se puede encontrar la ubicación de Android SDK para establecer la preferencia Eclipse
  • ¿Cómo mover el primer elemento del arraylist a la última posición?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.