Habilidades de Android
Ver en GitHubConfiguración de pruebas de Android
android skills add testing-setupPrueba la IU de tu app para verificar que el comportamiento de tu código de Compose sea correcto. Esto te permite detectar errores de forma temprana y mejorar la calidad de tu app.
Compose proporciona un conjunto de APIs de prueba para encontrar elementos, verificar sus atributos y realizar acciones del usuario. Las APIs también incluyen funciones avanzadas, como la manipulación del tiempo. Usa estas APIs para crear pruebas sólidas que verifiquen el comportamiento de tu app.
Vistas
Si trabajas con vistas en lugar de Compose, consulta la sección general Cómo probar apps en Android.
En particular, un buen punto de partida es la guía Cómo automatizar las pruebas de IU. En él, se explica cómo automatizar las pruebas que se ejecutan integrado en el dispositivo, incluso cuando se usan vistas.
Conceptos clave
A continuación, se presentan algunos conceptos clave para probar tu código de Compose:
- Semántica: La semántica le da significado a tu IU, lo que permite que las pruebas interactúen con elementos específicos.
- APIs de prueba: Las APIs de prueba te permiten encontrar elementos, verificar sus atributos y realizar acciones del usuario.
- Sincronización: La sincronización verifica que las pruebas esperen a que la IU esté inactiva antes de realizar acciones o aserciones.
- Interoperabilidad: La interoperabilidad permite que las pruebas funcionen con elementos basados en Compose y View en la misma app.
Pruebas de hoja de referencia
Consulta la hoja de referencia de pruebas para obtener una descripción general de todos los temas clave que debes aprender sobre las pruebas en Compose.
Configuración
Configurar tu app para que puedas probar el código de Compose
Primero, agrega las siguientes dependencias al archivo build.gradle del módulo que contiene las pruebas de tu IU:
// Test rules and transitive dependencies:
androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_version")
// Needed for createComposeRule(), but not for createAndroidComposeRule<YourActivity>():
debugImplementation("androidx.compose.ui:ui-test-manifest:$compose_version")
Este módulo incluye un ComposeTestRule y una implementación para Android llamada AndroidComposeTestRule. Con esta regla, puedes establecer el contenido
de Compose o acceder a la actividad. Las reglas se construyen con funciones de fábrica, ya sea createComposeRule o, si necesitas acceso a una actividad, createAndroidComposeRule. Una prueba de IU típica para Compose se ve de la siguiente manera:
// file: app/src/androidTest/java/com/package/MyComposeTest.kt
class MyComposeTest {
@get:Rule val composeTestRule = createComposeRule()
// use createAndroidComposeRule<YourActivity>() if you need access to
// an activity
@Test
fun myTest() {
// Start the app
composeTestRule.setContent {
MyAppTheme {
MainScreen(uiState = fakeUiState, /*...*/)
}
}
composeTestRule.onNodeWithText("Continue").performClick()
composeTestRule.onNodeWithText("Welcome").assertIsDisplayed()
}
}
Recursos adicionales
- Cómo probar apps en Android: Es la página de destino principal de pruebas de Android, que proporciona una vista más amplia de los aspectos básicos y las técnicas de prueba.
- Aspectos básicos de las pruebas: Obtén más información sobre los conceptos básicos detrás de las pruebas de una app para Android.
- Pruebas locales: Puedes ejecutar algunas pruebas de forma local, en tu propia estación de trabajo.
- Pruebas instrumentadas: También se recomienda ejecutar pruebas instrumentadas. Es decir, pruebas que se ejecutan directamente integrado en el dispositivo.
- Integración continua: La integración continua te permite integrar tus pruebas en la canalización de implementación.
- Prueba diferentes tamaños de pantalla: Con tantos dispositivos disponibles para los usuarios, debes realizar pruebas para diferentes tamaños de pantalla.
- Espresso: Si bien está pensado para las IU basadas en objetos View, el conocimiento de Espresso puede ser útil para algunos aspectos de las pruebas de Compose.
Codelab
Para obtener más información, prueba el codelab de prueba de Jetpack Compose.
Ejemplos
Recomendaciones para ti
- Nota: El texto del vínculo se muestra cuando JavaScript está desactivado
- Semántica en Compose
- Inserciones de ventana en Compose
- Otras consideraciones