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
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.
Assicurarsi di avere il
mavenCentral()
repository nel file build.gradle di primo livello:allprojects { repositories { google() mavenCentral() } }
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"
Assicurarsi che sia impostato sull'API
compileSdkVersion
33 e che sia impostato sull'APItargetSdkVersion
32 o versione successiva nel file build.gradle a livello di modulo:android { compileSdkVersion 33 defaultConfig { targetSdkVersion 32 } ... }
Creare un
TestRule
oggetto e un'istanzaUiDevice
all'interno della classe di test.@get:Rule val activityRule = ActivityScenarioRule(MainActivity::class.java) private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
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:
- Eseguire il movimento di scorrimento rapido
- 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:
Esempi
Per altri esempi di come usare i movimenti di scorrimento rapido simulati nei test di Surface Duo, vedere queste risorse:
- Surface Duo SDK
- Esempio di libreria ComposeTesting
- FoldingVideo
- PhotoEditor
- SourceEditor
- TwoNote
- Esempio di esperienza a doppio schermo
Risorse
Per altre informazioni sui test instrumentati e UiAutomator, vedere queste risorse: