Android + Espresso + solicitud HTTP asíncrona -> cómo probar?
Estoy tratando de probar la aplicación de Android utilizando Espresso FW y me quedé en el problema con hacer la solicitud HTTP asíncrona.
¿Cómo puedo probar el caso de que la aplicación (actividad) está esperando la solicitud de procesamiento y después de recibir la respuesta se muestra la siguiente actividad con el resultado o mensaje de error?
- Android: Espresso no espera hasta que se muestre fragmento o actividad para que cada prueba fallara
- ¿Cómo probar características de hardware específicas con Robolectric en android?
- Obtención de logcat desde el dispositivo Android de un probador
- Android: ejecución de pruebas instrumentadas en el servidor de TeamCity
- Pruebas de servicio de Android
Traté de encontrar alguna solución de cómo hacerlo en el Espresso con pruebas contra los datos del servidor de prueba, pero sin suerte.
Muchas gracias por cualquier consejo, ejemplo o enlace.
- Android: Se ha producido un error en la ejecución de la prueba: La ejecución de la instrumentación ha fallado debido a 'java.lang.IncompatibleClassChangeError'
- Gradle + Robolectric: ¿Dónde puedo poner el archivo org.robolectric.Config.properties?
- ¿Cómo puedo habilitar afirmaciones a nivel de idioma en Android Runtime (ART)?
- Comprobación de que una actividad devuelve el resultado esperado
- Prueba de componente en Android App SDLC?
- No puedo encontrar el texto en una ventana emergente con Robotium
- ¿Por qué no puedo iniciar sesión para probar las cuentas de usuario de Facebook desde la aplicación nativa de Android?
- Cómo comparar representaciones de cadena de dobles si termina en .00
Luché con esto durante unos días. Si su aplicación está utilizando retroadaptación para gestionar solicitudes HTTP, puede agregar esta línea:
.setExecutors(AsyncTask.THREAD_POOL_EXECUTOR, new MainThreadExecutor())
A su RestAdaptor.Builder. Esto mueve todas las peticiones HTTP en el grupo AsyncTasks que es manejado por espresso.
He encontrado la respuesta original aquí: http://www.michaelevans.org/blog/2015/08/03/using-espresso-for-easy-ui-testing/
Creo que el problema está en la arquitectura de la aplicación. Debe utilizar alguna biblioteca de inyección de dependencias para inyectar servicio simulado con datos falsos en su aplicación en modo de prueba. Cuando se inyecta "prueba" de implementación (mocks) cuando se prueba. U evitará problemas con la disponibilidad de la red o puede simular la disponibilidad de la red mediante la implementación de la prueba.
- GridView con elementos cuadrados en android con ancho / altura adaptable
- Extraño SQLiteException no en todos los dispositivos