Tests end to end completos con Jetpack Compose y Hilt
Clase 15 de 16 • Curso de Android Testing
Resumen
La implementación efectiva de pruebas end to end (E2E) en aplicaciones Android utilizando Jetpack Compose y Hilt garantiza la funcionalidad integral de la app. Durante este proceso exploraremos cómo usar Hilt para inyectar dependencias reales pero aisladas, aplicar reglas específicas de compose testing y validar comportamientos desde la interfaz hasta la base de datos.
¿Cómo configurar tests realistas utilizando Hilt y Compose?
Una prueba realista requiere condiciones controladas pero representativas del entorno final. Con la librería Hilt para Testing obtenemos dos componentes esenciales:
- Hilt Android Rule: necesaria para inicializar y administrar la inyección de dependencias específicas de tests.
- Android Compose Rule: permite probar actividades reales existentes en la app.
Con esto aseguramos que podemos reproducir condiciones similares a las que experimentan los usuarios finales.
¿Qué validaciones pueden hacerse con pruebas end to end?
Al utilizar pruebas end to end podemos ejecutar y validar múltiples escenarios críticos en la aplicación:
- Comprobar la presencia del estado vacío cuando no existen tareas.
- Verificar la visualización correcta de tareas existentes en la lista.
- Validar la creación de nuevas tareas desde la interfaz y su persistencia real.
Cada validación se realiza combinando la interacción de usuario simulado (clicks, textos ingresados) y comprobaciones directas con la base de datos.
¿Cómo verificar la persistencia en base de datos en tiempo real?
Para confirmar la persistencia real en la base de datos, usamos técnicas como:
- La ejecución de
runBlocking
para insertar o limpiar datos previos al test. - Consultas directas para validar que la información generada desde la interfaz realmente está siendo guardada:
runBlocking{
val tasksList = taskDao.getAllTasks().first()
assertThat(tasksList.any { it.title == "new test task" }).isTrue()
}
Este método asegura que los resultados del test no solo validan comportamiento visual, sino también la integridad de los datos.
Este tipo de pruebas robustece las aplicaciones Android modernas, asegurando la calidad y estabilidad de las apps desarrolladas con Jetpack Compose, proporcionando confianza en los escenarios críticos del negocio.