Testa l'interfaccia utente dell'app per verificare che il comportamento del codice Compose sia corretto. In questo modo puoi rilevare gli errori in anticipo e migliorare la qualità della tua app.
Compose fornisce una serie di API di test per trovare elementi, verificarne gli attributi ed eseguire azioni utente. Le API includono anche funzionalità avanzate come la manipolazione del tempo. Utilizza queste API per creare test affidabili che verifichino il comportamento della tua app.
Visualizzazioni
Se utilizzi le viste anziché Composizione, consulta la sezione generale Testare le app su Android.
In particolare, un buon punto di partenza è la guida Automatizzare i test dell'interfaccia utente. Spiega come automatizzare i test eseguiti sul dispositivo, anche quando si utilizzano le viste.
Concetti principali
Di seguito sono riportati alcuni concetti chiave per testare il codice di Compose.
- Semantica: i test di Compose interagiscono con la UI tramite la semantica, che dà significato a parti della UI e vengono generati insieme alla gerarchia della UI.
- API di test: Compose fornisce API di test per trovare elementi, eseguire verifiche sul loro stato e sulle loro proprietà ed eseguire azioni per simulare le interazioni utente.
- Sincronizzazione: per impostazione predefinita, i test di Compose si sincronizzano automaticamente con la UI, attendendo che sia inattivo prima di effettuare asserzioni o eseguire azioni.
- Interoperabilità: nelle app ibride, i test possono interagire senza problemi con elementi basati su Compose e View, nonché integrarsi con altri framework di test.
Cheatsheet per i test
Consulta la cheatsheet per i test per una panoramica di tutti gli argomenti chiave che devi conoscere sui test in Compose.
Configura
Configura l'app in modo da poter testare il codice di composizione.
Innanzitutto, aggiungi le seguenti dipendenze al file build.gradle
del modulo contenente i test dell'interfaccia utente:
// Test rules and transitive dependencies:
androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_version")
// Needed for createComposeRule(), but not for createAndroidComposeRule<YourActivity>():
debugImplementation("androidx.compose.ui:ui-test-manifest:$compose_version")
Questo modulo include un ComposeTestRule
e un'implementazione per Android chiamata AndroidComposeTestRule
. Con questa regola puoi impostare Scrivi
contenuto o accedere all'attività. Puoi creare le regole utilizzando le funzioni di fabbrica, createComposeRule
o, se hai bisogno di accedere a un'attività, createAndroidComposeRule
. Un tipico test dell'interfaccia utente per Compose è simile al seguente:
// file: app/src/androidTest/java/com/package/MyComposeTest.kt
class MyComposeTest {
@get:Rule val composeTestRule = createComposeRule()
// use createAndroidComposeRule<YourActivity>() if you need access to
// an activity
@Test
fun myTest() {
// Start the app
composeTestRule.setContent {
MyAppTheme {
MainScreen(uiState = fakeUiState, /*...*/)
}
}
composeTestRule.onNodeWithText("Continue").performClick()
composeTestRule.onNodeWithText("Welcome").assertIsDisplayed()
}
}
Risorse aggiuntive
- Testare le app su Android: la pagina di destinazione principale per i test di Android offre una visione più ampia delle nozioni di base e delle tecniche di test.
- Concetti fondamentali del test: scopri di più sui concetti fondamentali alla base del test di un'app per Android.
- Test locali: puoi eseguire alcuni test localmente, sulla tua workstation.
- Test strumentati: è buona norma eseguire anche test strumentati. Vale a dire che i test vengono eseguiti direttamente sul dispositivo.
- Integrazione continua: l'integrazione continua ti consente di integrare i test nella pipeline di deployment.
- Prova schermi di dimensioni diverse: con alcuni dispositivi a disposizione degli utenti, ti conviene eseguire test per schermi di dimensioni diverse.
- Espresso: sebbene sia destinata alle UI basate su View, le conoscenze di Espresso possono comunque essere utili per alcuni aspetti del test di Compose.
Codelab
Per scoprire di più, prova il codelab sul test di Jetpack Compose.
Campioni
Nessun suggerimento al momento.
Prova ad accedere al tuo Account Google.