Android Rédiger des tests plus complexes à l'aide de UIAutomatorViewer


Exemple

Pour permettre l'écriture de tests d'interface utilisateur plus complexes, UIAutomatorViewer est nécessaire. L'outil situé dans / tools / fait une capture d'écran en plein écran incluant les dispositions des vues actuellement affichées. Voir la photo suivante pour avoir une idée de ce qui est montré:

entrer la description de l'image ici

Pour les tests de l'interface utilisateur, nous recherchons un identifiant de ressource , un contenu-desc ou quelque chose d'autre pour identifier une vue et l'utiliser dans nos tests.

Le uiautomatorviewer est exécuté via le terminal.

Si, par exemple, nous voulons maintenant cliquer sur le bouton des applications, puis ouvrir une application et la balayer, voici à quoi la méthode de test peut ressembler:

public void testOpenMyApp() throws Exception {
    // wake up your device
    device.wakeUp();

    // switch to launcher (hide the previous application, if some is opened)
    device.pressHome();

    // enter applications menu (timeout=200ms)
    device.wait(Until.hasObject(By.desc(("Apps"))), 200);
    UiObject2 appsButton = device.findObject(By.desc(("Apps")));
    assertNotNull(appsButton);
    appsButton.click();

    // enter some application (timeout=200ms)
    device.wait(Until.hasObject(By.desc(("MyApplication"))), 200);
    UiObject2 someAppIcon = device.findObject(By.desc(("MyApplication")));
    assertNotNull(someAppIcon);
    someAppIcon.click();

    // do a swipe (steps=20 is 0.1 sec.)
    device.swipe(200, 1200, 1300, 1200, 20);
    assertTrue(isSomeConditionTrue)
}