Testez l'UI 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 travaillez avec des vues au lieu de Compose, consultez la section générale Tester des applications sur Android.
En particulier, le guide Automatiser les tests de l'interface utilisateur constitue un bon point de départ. 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 : la sémantique donne du sens à votre UI, ce qui permet aux tests d'interagir avec des éléments spécifiques.
- API de test : les API de test vous permettent de trouver des éléments, de vérifier leurs attributs et d'effectuer des actions utilisateur.
- Synchronisation : la synchronisation vérifie que les tests attendent que l'UI soit inactive avant d'effectuer des actions ou de faire des assertions.
- Interopérabilité : l'interopérabilité permet aux tests de fonctionner à la fois avec les éléments basés sur Compose et sur les vues dans la même application.
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 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 une 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 de fabrique, soit createComposeRule
, soit createAndroidComposeRule
si vous avez besoin d'accéder à une activité. 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 d'accueil principale des tests Android offre une vue plus large des principes fondamentaux 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. Autrement dit, 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 : les utilisateurs ont accès à de nombreux appareils. Vous devez donc 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, consultez l'atelier de programmation Jetpack Compose.
Exemples
Recommandations personnalisées
- Remarque : Le texte du lien s'affiche lorsque JavaScript est désactivé
- Sémantique dans Compose
- Encarts de fenêtre dans Compose
- Autres points à prendre en compte