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 et vérifier leur des attributs et des actions utilisateur. Les API 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 exécutés sur l'appareil, y compris lorsque vous utilisez de vues.

Concepts clés

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

  • Sémantique: les tests Compose interagissent avec l'interface utilisateur à l'aide de la sémantique. qui donnent du sens à des éléments de l'UI et sont générés en même temps que celle-ci la hiérarchie.
  • API de test: Compose fournit des API de test pour rechercher des éléments, d'effectuer des assertions sur leur état et leurs propriétés, simuler les interactions des utilisateurs.
  • Synchronisation: par défaut, Compose teste automatiquement se synchronisent avec l'UI, en attendant qu'elle soit inactive avant d'effectuer des assertions. ou l'exécution d'actions.
  • Interopérabilité: dans les applications hybrides, les tests peuvent interagir facilement avec des éléments basés sur Compose et sur les vues, et s'intègre à d'autres tests cadres réglementaires.

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 que vous devez connaître. 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 comprend un ComposeTestRule et une implémentation pour Android appelé AndroidComposeTestRule. Cette règle vous permet de configurer Compose ou accéder à l'activité. Vous construisez les règles à l'aide des fonctions de fabrique, soit createComposeRule, soit, si vous avez besoin d'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: les principaux tests Android page de destination offre une vue d'ensemble des principes de base et des techniques de test.
  • Principes de base des tests:en savoir plus sur les concepts fondamentaux des tests d'une application Android.
  • Tests en local:vous pouvez exécuter des tests. localement, sur votre propre poste de travail.
  • Tests d'instrumentation:bon entraînez-vous à exécuter également des tests d'instrumentation. Autrement dit, les 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 déploiement pipeline.
  • Testez différentes tailles d'écran:avec de nombreux appareils mis à la disposition des utilisateurs, vous devez les tester pour différents écrans différentes.
  • Espresso: bien qu'il soit destiné aux modèles basés sur les vues IU, la connaissance d'Espresso peut être utile pour certains aspects de Compose. tests.

Atelier de programmation

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

Exemples