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
:
- ¿Cómo implementar diferentes eventos mediante un solo toque y doble toque en libgdx?
- ¿Cómo puedo obtener el código de respuesta de un VolleyError?
- Facebook login nulo apuntador excepción android
- Android searchview setOnActionExpandListener en Honeycomb 3.2
- ¿Cómo puedo acceder a la cámara en teléfonos Android?
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?
- Dónde guardar los archivos de texto en el proyecto de Android en eclipse
- Android: Solicitar al usuario que guarde los cambios cuando se pulsa el botón Atrás
- ¿Hay un plugin de estudio de Android que convertir código a diagramas UML
- ¿Es la agrupación de objetos pequeños más eficiente que el recolector de basura Java de Android?
- Cambiar el nombre del dispositivo Android bluetooth
- Tween aditivo con Universal Tween Engine en libgdx?
- Iniciar chat de vídeo sin interacción del usuario - Android
- Invocación de método 'fab.setOnClickListener (new View.OnClickListener () {@Override public void on ...' puede producir 'java.lang.NullPointerException'
¿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