Prueba la IU de tu app para verificar que el comportamiento del código de Compose se cumpla. correcto Esto te permite detectar errores con anticipación y mejorar la calidad de tu app.
Compose proporciona un conjunto de APIs de prueba para encontrar elementos y 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.
Objetos View
Si trabajas con vistas en lugar de Compose, consulta el documento sobre cómo probar apps en Android.
En particular, un buen punto de partida es la guía Cómo automatizar las pruebas de IU. Integra se explica cómo puedes automatizar las pruebas que se ejecutan en el dispositivo, incluso cuando se usan vistas.
Conceptos clave
A continuación, se incluyen algunos conceptos clave para probar tu código de Compose.
- Semántica: Las pruebas de Compose interactúan con la IU mediante semántica. que dan significado a partes de la IU y se generan junto con ella en la nube.
- APIs de prueba: Compose proporciona APIs de prueba para encontrar elementos. hacer aserciones sobre su estado y sus propiedades, y realizar acciones para para simular interacciones del usuario.
- Sincronización: De forma predeterminada, Compose prueba automáticamente. Sincronizar con la IU, esperando a que esté inactiva antes de realizar aserciones o realizar acciones.
- Interoperabilidad: En las apps híbridas, las pruebas pueden interactuar sin problemas. con elementos basados en Compose y View, e integrarlos en otras pruebas de seguridad en la nube.
Pruebas de hoja de referencia
Consulta la hoja de referencia para pruebas a fin de obtener una descripción general de todos los temas clave que debes aprenderás sobre las pruebas en Compose.
Configuración
Configura 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 ella, puedes configurar Compose
contenido o acceder a la actividad. Construyes las reglas con funciones de fábrica,
createComposeRule
o, si necesitas acceso a una actividad,
createAndroidComposeRule
Una prueba típica de IU 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: Las pruebas principales de Android proporciona una visión más amplia de los fundamentos y las técnicas de prueba.
- Aspectos básicos de las pruebas: Más información sobre los conceptos básicos de prueba de una app para Android.
- Pruebas locales: Puedes ejecutar algunas pruebas. de forma local, en tu propia estación de trabajo.
- Pruebas instrumentadas: Es bueno. practicar para ejecutar también pruebas de instrumentación. Es decir, las pruebas que se ejecutan directamente en el dispositivo.
- Integración continua: La integración continua te permite integrar las pruebas en tu implementación. en una canalización de integración continua.
- Prueba diferentes tamaños de pantalla: algunos dispositivos disponibles para los usuarios, debes probar diferentes pantallas tamaños.
- Espresso: Aunque está diseñado para objetos View basados en IUs y el conocimiento de Espresso puede ser útil para algunos aspectos de Compose. y pruebas.
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