Teilen über


Simulieren von Wischgesten auf dem Surface Duo

UiAutomator ist ein Testframework, das appübergreifende Testfunktionen und Zugriff auf Gerätesensoren bietet. Mithilfe der swipe-Methode aus der Klasse UiDevice und den Gerätedimensionen können Sie im Rahmen von Tests verschiedene Gesten auf dem Surface Duo simulieren.

Das Testkit stellt Hilfsfunktionen zur Verfügung, die Wischvorgänge zwischen verschiedenen Koordinaten ausführen, um die übergreifende Darstellung einer App, das Aufheben der übergreifenden Darstellung, den Wechsel der Bildschirme für eine App und das Schließen einer App zu simulieren.

Setup

  1. Erstellen Sie eine neue Testklassendatei im Verzeichnis androidTest. Hier fügen Sie später die Codeausschnitte für Testregeln und Tests hinzu.

  2. Achten Sie darauf, das mavenCentral() -Repository in Ihre build.gradle-Datei der obersten Ebene aufzunehmen:

    allprojects {
        repositories {
            google()
            mavenCentral()
         }
    }
    
  3. Fügen Sie Ihrer build.gradle-Datei auf Modulebene die folgenden Abhängigkeiten hinzu (die aktuelle Version weicht möglicherweise von der hier gezeigten ab):

    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. Stellen Sie sicher, dass der compileSdkVersion auf API 33 festgelegt ist und in targetSdkVersion der Build.gradle-Datei auf Modulebene auf API 32 oder höher festgelegt ist:

    android { 
        compileSdkVersion 33
    
        defaultConfig { 
            targetSdkVersion 32 
        } 
        ... 
    }
    
  5. Erstellen Sie innerhalb Ihrer Testklasse eine TestRule- und eine UiDevice-Instanz.

    @get:Rule
    val activityRule = ActivityScenarioRule(MainActivity::class.java)
    private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
    
  6. Wenn Sie Espresso zum Testen von Ansichten verwenden, achten Sie darauf, auf Ihrem Gerät Animationen zu deaktivieren.

Schreiben von Tests

In den Testkitbibliotheken bieten wir Optionen zum Ausführen von Anzeigevorgängen auf dem Surface Duo. Alle diese Methoden verwenden die Wischmethode von UiDevice, um Wischgesten zwischen verschiedenen Koordinaten zu simulieren. Damit Ihre Tests so zuverlässig wie möglich werden, empfiehlt es sich, Assertionen und Überprüfungen zwischen den Wischvorgängen durchzuführen und die Anzahl der in jedem Test ausgeführten Wischvorgänge zu minimieren.

Befolgen Sie diese Schritte, um einen Test zu schreiben, der Wischgesten verwendet:

  1. Ausführen einer Wischgeste
  2. Bestätigen, dass sich die Benutzeroberfläche wie erwartet geändert hat

Der Beispieltest unten veranschaulicht einen einfachen UI-Test für eine App, die im überspannenden Modus zwei Bereiche anzeigt.

@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()))
}

Die folgende Animation zeigt, wie testSpan beim Ausführen auf dem Surface Duo-Emulator aussieht:

Ausgeführter Test „testSpan“ im Surface Duo-Emulator

Beispiele

Weitere Beispiele für die Verwendung simulierter Wischgesten in Surface Duo-Tests finden Sie in diesen Ressourcen:

Ressourcen

Weitere Informationen zu instrumentierten Tests und UiAutomator finden Sie in diesen Ressourcen: