Tester votre mise en page Compose

Testez l'UI de votre application pour vérifier que le comportement de votre code Compose est correct. Vous pourrez ainsi détecter les erreurs plus tôt et 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 valident le comportement de votre application.

Vues

Si vous travaillez avec des vues plutôt qu'avec Compose, consultez la section générale Tester des applications sur Android.

En particulier, le guide Automatiser les tests de l'interface utilisateur est un bon point de départ. Il explique comment automatiser les tests exécutés sur l'appareil, y compris lorsque vous utilisez des vues.

Concepts clés

Vous trouverez ci-dessous 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 aux éléments de l'UI et est générée parallèlement à la hiérarchie de l'UI.
  • API de test: Compose fournit des API de test pour rechercher des éléments, émettre des assertions sur leur état et leurs propriétés, et effectuer des actions pour simuler les interactions utilisateur.
  • Synchronisation: par défaut, les tests Compose se synchronisent automatiquement avec l'UI, en attendant qu'elle soit inactive avant d'effectuer des assertions ou des actions.
  • Interopérabilité: dans les applications hybrides, les tests peuvent interagir de manière fluide avec les éléments Compose et basés sur des vues, et s'intégrer à d'autres frameworks de test.

Aide-mémoire pour les tests

Consultez l'aide-mémoire pour les tests pour obtenir un aperçu de tous les sujets clés que vous devez connaître sur les tests dans Compose.

Configuration

Configurez votre application pour 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 configurer du contenu Compose ou d'accéder à l'activité. Vous créez les règles à l'aide de fonctions d'usine, 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 sur les tests Android offre une vue plus large des principes 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 en local, sur votre propre poste de travail.
  • Tests instrumentés:il est recommandé d'exécuter également des tests instrumentés. Il s'agit des 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.
  • Testez différentes tailles d'écran:avec de nombreux appareils à la disposition des utilisateurs, vous devez tester différentes tailles d'écran.
  • Espresso: bien que destiné aux UI basées sur les vues, les connaissances sur Espresso peuvent toujours être utiles pour certains aspects des tests Compose.

Atelier de programmation

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

Exemples