Cómo probar tu diseño de Compose

Prueba la IU de tu app para verificar que el comportamiento del código de Compose sea correcto. Esto te permite detectar errores de forma temprana y mejorar la calidad de tu app.

Compose brinda un conjunto de APIs de prueba para buscar elementos, verificar sus atributos y realizar acciones del usuario. Las APIs también incluyen funciones avanzadas, como la manipulación de 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 pruebas de IU. En ella, se explica cómo puedes automatizar las pruebas que se ejecutan integrado en el dispositivo, incluso cuando usas vistas.

Conceptos clave

A continuación, se incluyen algunos conceptos clave para probar tu código de Compose:

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

Configura tu app para que te permita 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")

En este módulo, se 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 acceder a una actividad, createAndroidComposeRule. La 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: La página de destino principal de las pruebas de Android proporciona una visión más amplia de los fundamentos 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 es una buena práctica 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 tu canalización de implementación.
  • Cómo probar diferentes tamaños de pantalla: Con tantos dispositivos disponibles para los usuarios, debes probar diferentes tamaños de pantalla.
  • Espresso: Si bien está diseñada para IUs basadas en 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