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 plus tôt et d'améliorer la qualité de votre application.

Compose fournit un ensemble d'API de test pour rechercher des éléments, vérifier leurs attributs et effectuer des actions utilisateur. Elles incluent aussi des fonctionnalités avancées, comme 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.

En particulier, vous pouvez commencer par consulter le guide Automatiser les tests de l'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.

  • Sémantique: les tests Compose interagissent avec l'UI à l'aide de la sémantique, qui donne du sens à des éléments de l'UI et sont générés parallèlement à la hiérarchie de l'UI.
  • API de test: Compose fournit des API de test pour rechercher des éléments, effectuer des assertions sur leur état et leurs propriétés, et effectuer des actions pour simuler des interactions utilisateur.
  • Synchronisation: par défaut, les tests Compose se synchronisent automatiquement avec l'interface utilisateur, en attendant qu'elle soit inactive avant d'effectuer des assertions ou d'effectuer des actions.
  • Interopérabilité: dans les applications hybrides, les tests peuvent interagir facilement avec les éléments basés sur Compose et les vues, et s'intégrer à d'autres frameworks de test.

Aide-mémoire pour les tests

Consultez l'aide-mémoire pour les tests afin d'obtenir un aperçu de tous les sujets clés à connaître concernant les tests dans Compose.

Configurer

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 un ComposeTestRule et une implémentation pour Android appelée AndroidComposeTestRule. Cette règle vous permet de définir le contenu Compose ou d'accéder à l'activité. Vous créez les règles à l'aide des fonctions de fabrique, createComposeRule ou, si vous devez accéder à une activité, createAndroidComposeRule. Voici à quoi ressemble un test d'interface utilisateur classique 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 de test 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 qui sous-tendent les tests d'une application Android.
  • Tests locaux:vous pouvez exécuter certains tests en local, sur votre propre poste de travail.
  • Tests d'instrumentation:il est recommandé d'exécuter également des tests d'instrumentation. c'est-à-dire des tests qui s'exécutent directement sur l'appareil.
  • Intégration continue:l'intégration continue vous permet d'intégrer vos tests dans votre pipeline de déploiement.
  • Testez différentes tailles d'écran:étant donné que de nombreux appareils sont disponibles pour les utilisateurs, vous devez tester différentes tailles d'écran.
  • Espresso: bien qu'il soit destiné aux UI basées sur les vues, la connaissance d'Espresso peut toujours être utile pour certains aspects des tests Compose.

Atelier de programmation

Pour en savoir plus, suivez l'atelier de programmation sur les tests Jetpack Compose.

Exemples