Tests en Compose Multiplatform (CMP) desde Código Común
Compose Multiplatform (CMP) permite construir UI para múltiples plataformas utilizando Jetpack Compose. Afortunadamente, CMP también admite escribir y ejecutar tests de UI en el código común, lo que hace que los test sean más eficientes en todas las plataformas. En esta publicación, exploraremos cómo probar aplicaciones CMP utilizando compose.uiTest
y ejecutarlas en Android, Desktop e iOS.
1. Configuración de Test de UI Comunes
CMP proporciona compose.uiTest
, lo que permite escribir test de UI en el módulo compartido sin depender de plataformas específicas. Esto significa que puedes escribir una vez y probar en todas partes.
Actualización de la Configuración del Proyecto
Para habilitar los tests, actualiza tu archivo build.gradle.kts
en el módulo compartido:
|
|
Declaración de Dependencias para Tests de UI en Android
En el nivel raíz de tu archivo build.gradle.kts
, agrega las dependencias necesarias para los tests en Android:
|
|
Configuración Específica para Tests en Android
Para tests instrumentadas en Android, agrega lo siguiente a tu build.gradle.kts
:
|
|
2. Implementación de una UI de Contador Simple
Vamos a crear un CounterViewModel que será probado:
|
|
Ahora, creemos la UI con Composables que interactúa con este ViewModel:
|
|
3. Escribiendo un Test de UI Común en CMP
Ahora, escribamos un test de UI en commonTest
para validar que al hacer clic en el botón, el contador se incremente:
|
|
4. Ejecutando los Tests en Múltiples Plataformas
Ahora que hemos escrito nuestr test en código común, ejecutémosla en Android, Desktop e iOS.
Ejecutar Tests en Android
Para tests instrumentadas en Android, ejecuta:
|
|
Ejecutar Tests en Desktop
|
|
Ejecutar Tests en iOS
Para tests en el simulador de iOS, ejecuta:
|
|
5. ¿Por Qué Probar CMP desde Código Común?
✅ Escribe una vez, prueba en todas partes: No es necesario duplicar tests en cada plataforma.
✅ Comportamiento consistente en todas las plataformas: Garantiza que los elementos de la UI funcionen de la misma manera.
✅ Mantenimiento más fácil: Una única suite de tests cubriendo todos los objetivos.
Conclusión
Con los tests de UI en Compose Multiplatform, podemos validar el comportamiento de la UI desde código compartido sin necesidad de implementaciones de test específicos por plataforma. La biblioteca compose.uiTest
nos permite probar interacciones de UI como la verificación de texto y clics en botones, asegurando consistencia en Android, iOS y Desktop.