Partager via


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

  1. 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.

  2. Vérifiez que vous disposez du référentiel mavenCentral() dans votre fichier build.gradle de premier niveau :

    allprojects {
        repositories {
            google()
            mavenCentral()
         }
    }
    
  3. 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"
    
  4. Vérifiez que est compileSdkVersion défini sur API 33 et que le targetSdkVersion 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 
        } 
        ... 
    }
    
  5. Créez une TestRule et une instance UiDevice dans votre classe de test.

    @get:Rule
    val activityRule = ActivityScenarioRule(MainActivity::class.java)
    private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
    
  6. 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 :

  1. Effectuer un mouvement de balayage
  2. 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 :

Test testSpan s’exécutant 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 :

Ressources

Pour en savoir plus sur les tests instrumentés et sur UiAutomator, consultez les ressources suivantes :