Tester votre mise en page Compose

Testez l'interface utilisateur de votre application pour vérifier que le comportement de votre code Compose est correct. Cela vous permet de détecter les erreurs rapidement et d'améliorer la qualité de votre application.

Compose fournit un ensemble d'API de test pour trouver des éléments, vérifier leurs attributs et effectuer des actions utilisateur. Les API incluent également des fonctionnalités avancées, telles que la manipulation du temps. Utilisez ces API pour créer des tests robustes qui vérifient le comportement de votre application.

Vues

Si vous utilisez des vues au lieu de Compose, consultez la section générale Tester des applications sur Android.

Pour commencer, consultez le guide Automatiser les tests d'interface utilisateur. Il explique comment automatiser les tests qui s'exécutent sur l'appareil, y compris lorsque vous utilisez des vues.

Concepts clés

Voici quelques concepts clés pour tester votre code Compose :

Aide-mémoire pour les tests

Consultez l'aide-mémoire pour les tests pour obtenir une vue d'ensemble de tous les sujets clés que vous devez connaître sur les tests dans Compose.

Configuration

Configurez votre application pour pouvoir tester le code Compose.

Commencez par ajouter les dépendances suivantes au fichier build.gradle du module contenant vos tests d'interface utilisateur :

// 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")

Ce module inclut une ComposeTestRule et une intégration pour Android appelée AndroidComposeTestRule. Cette règle vous permet de configurer du contenu Compose ou d'accéder à l'activité. Vous construisez les règles à l'aide de fonctions de fabrique, soit createComposeRule ou, si vous avez besoin d'accéder à une activité, createAndroidComposeRule. Voici à quoi ressemble un test d'interface utilisateur pour Compose :

// 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()
    }
}

Autres ressources

  • Tester des applications sur Android : la page de destination principale des tests Android offre une vue plus large des principes de base et des techniques de test.
  • Principes de base des tests :découvrez les concepts fondamentaux des tests d'une application Android.
  • Tests locaux : vous pouvez exécuter certains tests localement, sur votre propre poste de travail.
  • Tests d'instrumentation: il est recommandé d'exécuter également des tests d'instrumentation. Il s'agit de tests qui s'exécutent directement sur l'appareil.
  • Intégration continue: L'intégration continue vous permet d'intégrer vos tests à votre pipeline de déploiement.
  • Tester différentes tailles d'écran : étant donné le nombre d'appareils disponibles pour les utilisateurs, vous devez tester différentes tailles d'écran.
  • Espresso : bien que conçu pour les interfaces utilisateur basées sur les vues, Espresso peut être utile pour certains aspects des tests Compose.

Atelier de programmation

Pour en savoir plus, consultez l'atelier de programmation Jetpack Compose.

Exemples