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
:
- Comprobar si la notificación de mi aplicación se está ejecutando
- FilenameFilter, buscando carpetas
- ¿Dónde está jarsigner?
- URL de secuencias de audio y problemas Resolución de URL de flujo
- ¿Cómo puedo iniciar una nueva actividad de Android con una cadena?
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?
- Android, agregue una nueva vista sin diseño XML
- Compruebe si un objeto es una instancia de una clase (pero no una instancia de su subclase)
- Utilice bases de datos pre-pobladas con Realm
- ¿Cómo habilitar la inspección después de haber sido inhabilitado en Android Studio?
- ¿Cómo establecer la posición del diálogo?
- VerifyError con PowerMock en Android
- ¿Por qué las cadenas de referencia de un archivo de recursos externos en lugar de codificación en la disposición de Android XML?
- Registro de escritura de Android en el archivo
¿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
- SlidingUpPanelLayout no funciona correctamente con CoordinatorLayout como primer hijo de SlidingUpPanelLayout
- WebView se estrella al cargar vídeos para Android 7.0