Simuler FoldingFeatures dans les tests d’interface utilisateur
Jetpack Window Manager fournit également une bibliothèque de test qui permet de simuler facilement des objets FoldingFeature
. En créant des fonctionnalités de repli factices, vous pouvez tester le comportement de l’application sur les appareils pliables pendant les tests de l’interface utilisateur.
Le kit de test fournit des fonctions d’utilitaire qui peuvent simuler des fonctionnalités de repli avec différentes propriétés, y compris des fonctionnalités de repli qui correspondent aux dimensions de plusieurs appareils du marché.
Configuration
Créez un fichier de classe de test dans le répertoire androidTest. C’est là que vous ajouterez les extraits de code pour les tests et les règles de test.
Vérifiez que vous disposez du référentiel
mavenCentral()
dans votre fichier build.gradle de premier niveau :allprojects { repositories { google() mavenCentral() } }
Ajoutez les dépendances suivantes au fichier build.gradle de niveau module (la version actuelle peut être différente de ce qui est illustré ici) :
Vérifiez que est
compileSdkVersion
défini sur API 33 et que letargetSdkVersion
est défini sur API 32 ou version ultérieure dans votre fichier build.gradle au niveau du module :android { compileSdkVersion 33 defaultConfig { targetSdkVersion 32 } ... }
Créez un
TestRule
qui peut effectuer des vérifications d’interface utilisateur et simuler des fonctionnalités de repli. Pour ce faire, vous pouvez chaîner deux règles : une règle d’éditeurWindowLayoutInfo
et une règle de test Compose ou de scénario d’activité.Si vous utilisez Espresso pour tester les affichages, veillez à désactiver les animations sur votre appareil.
Comment écrire des tests
Dans les bibliothèques du kit de test, nous proposons plusieurs options pour simuler des fonctionnalités de repli avec différentes propriétés. Conformément à la documentation sur les tests Jetpack Window Manager, nous vous recommandons de simuler une seule fonctionnalité de repli par test.
Pour écrire un test qui simule une fonctionnalité de repli, effectuez les étapes suivantes :
- Simuler une fonctionnalité de repli
- Déclarer que l’interface utilisateur a changé comme prévu
L’exemple de test ci-dessous illustre un test d’interface utilisateur simple pour une application qui affiche deux volets quand une fonctionnalité de repli vertical est activée.
@Test
fun testVerticalFoldingFeature() {
onView(withText("pane 1")).check(matches(isDisplayed()))
// 1. Simulate a folding feature
publisherRule.simulateVerticalFoldingFeature(activityRule)
// 2. Assert that UI has changed as expected
onView(withText("pane 1")).check(matches(isDisplayed()))
onView(withText("pane 2")).check(matches(isDisplayed()))
}
L’animation ci-dessous montre à quoi ressemble testVerticalFoldingFeature
pendant son exécution sur l’émulateur Surface Duo :
Exemples
Pour voir d’autres exemples d’utilisation de fonctionnalités de repli simulées dans des tests pour appareils pliables, consultez les ressources suivantes :
Ressources
Pour en savoir plus sur les tests instrumentés et les tests Jetpack Window Manager, consultez les ressources suivantes :