Simulare i movimenti di scorrimento rapido in Surface Duo

UiAutomator è un framework di test che fornisce funzionalità di test tra app e accesso ai sensori del dispositivo. Usando il swipe metodo dalle dimensioni della classe UiDevice e del dispositivo, puoi simulare movimenti diversi in Surface Duo durante i test.

Il Test Kit fornisce funzioni di utilità che eseguono scorrimenti rapido tra coordinate diverse per simulare l'estensione di un'app, lo spostamento di un'app tra le schermate e la chiusura di un'app.

Eseguire la configurazione

  1. Creare un nuovo file di classe di test nella directory androidTest . Qui si aggiungeranno in seguito i frammenti di codice per le regole e i test di test.

  2. Assicurarsi di avere il mavenCentral() repository nel file build.gradle di primo livello:

    allprojects {
        repositories {
            google()
            mavenCentral()
         }
    }
    
  3. Aggiungere le dipendenze seguenti al file build.gradle a livello di modulo (la versione corrente può essere diversa da quella illustrata di seguito):

    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. Assicurarsi che sia impostato sull'API compileSdkVersion 33 e che sia impostato sull'API targetSdkVersion 32 o versione successiva nel file build.gradle a livello di modulo:

    android { 
        compileSdkVersion 33
    
        defaultConfig { 
            targetSdkVersion 32 
        } 
        ... 
    }
    
  5. Creare un TestRule oggetto e un'istanza UiDevice all'interno della classe di test.

    @get:Rule
    val activityRule = ActivityScenarioRule(MainActivity::class.java)
    private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
    
  6. Se usi Espresso per testare le visualizzazioni, assicurati di disabilitare le animazioni nel dispositivo.

Come scrivere test

Nelle librerie di Test Kit sono disponibili opzioni per l'esecuzione di operazioni di visualizzazione in Surface Duo. Tutti questi metodi usano il metodo swipe da UiDevice per simulare scorrimenti rapido tra coordinate diverse. Per rendere i test il più affidabile possibile, è consigliabile eseguire asserzioni e controlli tra scorrimenti e ridurre al minimo il numero di scorrimenti rapido eseguiti in ogni test.

Per scrivere un test che usa i movimenti di scorrimento rapido, seguire questa procedura:

  1. Eseguire il movimento di scorrimento rapido
  2. Asserire che l'interfaccia utente sia stata modificata come previsto

Il test di esempio seguente illustra un semplice test dell'interfaccia utente per un'app che mostra due riquadri quando viene esteso.

@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'animazione seguente mostra l'aspetto testSpan durante l'esecuzione nell'emulatore di Surface Duo:

testSpan in esecuzione nell'emulatore di Surface Duo

Esempi

Per altri esempi di come usare i movimenti di scorrimento rapido simulati nei test di Surface Duo, vedere queste risorse:

Risorse

Per altre informazioni sui test instrumentati e UiAutomator, vedere queste risorse: