Testa la UI della tua 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 un insieme 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 solidi che verifichino il comportamento della tua app.
Visualizzazioni
Se utilizzi le visualizzazioni anziché Compose, 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 utilizzi le visualizzazioni.
Concetti principali
Di seguito sono riportati alcuni concetti chiave per testare il codice Compose:
- Semantica: la semantica dà significato alla tua UI, consentendo ai test di interagire con elementi specifici.
- API di test: le API di test ti consentono di trovare elementi, verificarne gli attributi ed eseguire azioni utente.
- Sincronizzazione: la sincronizzazione verifica che i test attendano che la UI sia inattiva prima di eseguire azioni o fare asserzioni.
- Interoperabilità: l'interoperabilità consente ai test di funzionare con elementi basati su Compose e View nella stessa app.
Foglio illustrativo dei test
Consulta il cheat sheet per i test per una panoramica di tutti gli argomenti chiave che devi imparare sui test in Compose.
Configura
Configura l'app per testare il codice Compose.
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
. Tramite questa regola puoi impostare la composizione
dei contenuti o accedere all'attività. Le regole vengono create utilizzando le funzioni di fabbrica,
createComposeRule
o, se devi accedere a un'attività,
createAndroidComposeRule
. Un test UI tipico per Compose ha questo aspetto:
// 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 dei test Android offre una visione più ampia dei fondamenti e delle tecniche di test.
- Nozioni di base sui 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. ovvero test eseguiti direttamente sul dispositivo.
- Integrazione continua: L'integrazione continua consente di integrare i test nella pipeline di deployment.
- Testa diverse dimensioni dello schermo: con tanti dispositivi a disposizione degli utenti, devi eseguire test per diverse dimensioni dello schermo.
- Espresso: sebbene sia destinato alle UI basate sulla visualizzazione, la conoscenza di Espresso può comunque essere utile per alcuni aspetti dei test di Compose.
Codelab
Per saperne di più, prova il codelab di test di Jetpack Compose.
Campioni
Consigliati per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Semantica in Scrittura
- Rientri della finestra in Scrivi
- Altre considerazioni