Simuler des mouvements de balayage sur Surface Duo
UiAutomator est un framework de test qui fournit des fonctionnalités de test interapplications ainsi qu’un accès aux capteurs de l’appareil. À l’aide de la méthode swipe
de la classe UiDevice et des dimensions d’appareil, vous pouvez simuler différents mouvements sur l’appareil Surface Duo pendant les tests.
Le kit de test fournit des fonctions d’utilitaire qui effectuent des balayages entre différentes coordonnées afin de simuler le passage en double écran puis le retour à un seul écran, mais également le passage d’un écran à un autre dans l’application et la fermeture de l’application.
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) :
androidTestImplementation "com.microsoft.device.dualscreen.testing:testing-kotlin:1.0.0-alpha4" androidTestImplementation "androidx.test.uiautomator:uiautomator:2.2.0" androidTestImplementation "androidx.test.espresso:espresso-core:3.4.0" androidTestImplementation "androidx.test:runner:1.4.0" androidTestImplementation "androidx.test:rules:1.4.0"
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 une
TestRule
et une instanceUiDevice
dans votre classe de test.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 fournissons des options pour effectuer des opérations d’affichage sur l’appareil Surface Duo. Toutes ces méthodes utilisent la méthode de balayage de UiDevice
pour simuler des balayages entre différentes coordonnées. Pour rendre vos tests aussi fiables que possible, nous vous recommandons d’effectuer des assertions et des vérifications entre les balayages, et de réduire le nombre de balayages effectués dans chaque test.
Pour écrire un test qui utilise des mouvements de balayage, effectuez les étapes suivantes :
- Effectuer un mouvement de balayage
- Déclarer que l’interface utilisateur a changé comme prévu
L’exemple de test ci-dessous montre un test d’interface utilisateur simple pour une application qui affiche deux volets lorsque vous passez en double écran.
@Test
fun testSpan() {
onView(withText("pane 1")).check(matches(isDisplayed()))
// 1. Perform swipe gesture
device.spanFromStart()
// 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 testSpan
pendant son exécution sur l’émulateur Surface Duo :
Exemples
Pour voir d’autres exemples d’utilisation des gestes de balayage simulés dans les tests Surface Duo, consultez les ressources suivantes :
- SDK Surface Duo
- Exemple de bibliothèque ComposeTesting
- FoldingVideo
- PhotoEditor
- SourceEditor
- TwoNote
- Exemple d'expérience sur deux écrans
Ressources
Pour en savoir plus sur les tests instrumentés et sur UiAutomator, consultez les ressources suivantes :