Lo strumento Registratore di test Espresso consente di creare test dell'interfaccia utente per la tua app senza scrivere alcun codice di test. Registrando uno scenario di test, puoi registrare le tue interazioni con un dispositivo e aggiungere asserzioni per verificare gli elementi dell'interfaccia utente in determinate snapshot della tua app. Espresso Test Recorder esegue quindi la registrazione salvata e genera automaticamente un test dell'interfaccia utente corrispondente che puoi eseguire per testare la tua app.
Espresso Test Recorder scrive i test in base al framework di test Espresso, un'API in AndroidX Test. L'API Espresso ti incoraggia a creare test dell'interfaccia utente concisi e affidabili basati sulle azioni dell'utente. Dichiarando aspettative, interazioni e asserzioni senza accedere direttamente alle attività e alle visualizzazioni dell'app sottostante, questa struttura impedisce le irregolarità del test e ottimizza la velocità di esecuzione dei test.
Disattivare le animazioni sul dispositivo di test
Prima di utilizzare Registratore di prova Espresso, assicurati di disattivare le animazioni sul dispositivo di test per evitare risultati imprevisti. Segui le istruzioni per la configurazione di Espresso nella pagina Interfaccia utente di test per una singola app, ma tieni presente che non è necessario impostare manualmente un riferimento delle dipendenze per la libreria Espresso perché Registratore di prova esegue automaticamente questa operazione quando salvi una registrazione. Questi passaggi devono essere eseguiti una sola volta per un determinato progetto.
Registra un test Espresso
I test Espresso sono costituiti da due componenti principali: interazioni UI e asserzioni sugli elementi View. Le interazioni con l'interfaccia utente includono azioni di tocco e digitazione che una persona potrebbe utilizzare per interagire con la tua app. Le asserzioni verificano l'esistenza o i contenuti di elementi visivi sullo schermo. Ad esempio, un test Espresso per l'app di test di Notes potrebbe includere interazioni con l'interfaccia utente per fare clic su un pulsante e scrivere una nuova nota, ma utilizzare le asserzioni per verificare l'esistenza del pulsante e i contenuti della nota.
In questa sezione vedremo come creare entrambi i componenti del test utilizzando Registratore di test per caffè espresso e come salvare la registrazione finita per generare il test.
Registra interazioni con l'interfaccia utente
Per avviare la registrazione di un test con Registratore di prova Espresso, procedi come segue:
- Fai clic su Esegui> Registra test espresso.
- Nella finestra Seleziona la destinazione del deployment, scegli il dispositivo su cui vuoi registrare il test. Se necessario, crea un nuovo dispositivo virtuale Android. Fai clic su OK.
- Espresso Test Recorder attiva una build del progetto e l'app deve essere installata e avviata prima di consentirti di interagire con Espresso Test Recorder. La finestra Registra il test viene visualizzata dopo l'avvio dell'app e, dato che non hai ancora interagito con il dispositivo, nel riquadro principale viene visualizzato il messaggio "Nessun evento registrato ancora". Interagisci con il tuo dispositivo per iniziare a registrare eventi come le azioni di "tocco" e "digita".
Nota: prima di poter iniziare a registrare le interazioni, potresti visualizzare una finestra di dialogo sul dispositivo con il messaggio "In attesa di Debugger" o "Collegamento a Debugger". Espresso Test Recorder utilizza il debugger per registrare gli eventi dell'interfaccia utente. Quando il debugger viene collegato, la finestra di dialogo si chiude automaticamente; non premere Forza chiusura.
Le interazioni registrate verranno visualizzate nel riquadro principale della finestra Registra il test, come mostrato nella figura 1 di seguito. Quando esegui il test, il test espresso proverà a eseguire queste azioni nello stesso ordine.

Figura 1. La finestra Registra il test con le interazioni con l'interfaccia utente registrate.
Aggiungi asserzioni per verificare gli elementi UI
Le asserzioni verificano l'esistenza o i contenuti di un elemento View tramite tre tipi principali:
- text is: controlla i contenuti testuali dell'elemento Visualizza selezionato
- exists: controlla che l'elemento View sia presente nella gerarchia delle viste corrente visibile sullo schermo
- non esiste: controlla che l'elemento View non sia presente nella gerarchia corrente
Per aggiungere un'asserzione al tuo test, procedi come segue:
- Fai clic su Aggiungi asserzione. Viene visualizzata la finestra di dialogo Acquisizione schermo mentre Espresso riceve la gerarchia dell'interfaccia utente e altre informazioni sullo stato corrente dell'app. La finestra di dialogo si chiude automaticamente una volta che Espresso ha acquisito lo screenshot.
- In un riquadro a destra della finestra Registra il test viene visualizzato un layout della schermata corrente. Per selezionare un elemento Visualizza su cui creare un'asserzione, fai clic sull'elemento nello screenshot o utilizza il primo menu a discesa nella casella Modifica asserzione nella parte inferiore della finestra. L'oggetto Visualizza selezionato è evidenziato in una casella rossa.
- Seleziona l'asserzione che vuoi utilizzare dal secondo menu a discesa nella casella Modifica asserzione. Espresso completa il menu con asserzioni valide per l'elemento View selezionato.
- Se scegli l'asserzione "testo è", Espresso inserisce automaticamente il testo attualmente all'interno dell'elemento View selezionato. Puoi modificare il testo in modo che corrisponda all'asserzione desiderata utilizzando il campo di testo nella casella Modifica asserzione.
- Fai clic su Salva e aggiungi un'altra per creare un'altra asserzione oppure fai clic su Salva asserzione per chiudere i riquadri delle asserzioni.
Lo screenshot nella figura 2 mostra la creazione di un'asserzione "testo è" per verificare che il titolo della nota sia "Buon test":

Figura 2. La casella Modifica asserzione dopo la selezione di un elemento (in rosso).
Durante la creazione di un'asserzione, puoi continuare a interagire con l'app, anche con i riquadri delle asserzioni ancora aperti all'interno della finestra Registra il test. Espresso Test Recorder continuerà a registrare le tue azioni, ma l'asserzione che stai modificando verrà visualizzata prima di queste interazioni dopo il salvataggio. Lo screenshot dell'asserzione conserva anche il layout che aveva il dispositivo o l'emulatore quando hai fatto clic sul pulsante Aggiungi asserzione.
Salvare una registrazione
Dopo aver terminato l'interazione con l'app e l'aggiunta delle asserzioni, procedi nel seguente modo per salvare la registrazione e generare il test Espresso:
- Fai clic su Complete Recording (Completa registrazione). Viene visualizzata la finestra Scegli un nome di classe di test per il test.
- Il Registratore di prova Espresso assegna al test un nome univoco all'interno del pacchetto, in base al nome dell'attività avviata. Utilizza il campo di testo Nome classe di test se vuoi modificare il nome suggerito. Fai clic su Salva.
- Se non hai aggiunto le dipendenze Espresso all'app, viene visualizzata la finestra di dialogo Dipendenze Espresso mancanti quando provi a salvare il test. Fai clic su Sì per aggiungere automaticamente le dipendenze al file
build.gradle
.
- Se non hai aggiunto le dipendenze Espresso all'app, viene visualizzata la finestra di dialogo Dipendenze Espresso mancanti quando provi a salvare il test. Fai clic su Sì per aggiungere automaticamente le dipendenze al file
- Il file si apre automaticamente dopo la generazione di Espresso Test Recorder e Android Studio mostra la classe di test selezionata nella finestra Project dell'IDE.
- La posizione in cui il test viene salvato dipende dalla posizione della directory radice del test di strumentazione e dal nome del pacchetto dell'attività avviata. Ad esempio, i test dell'app di test di Notes vengono salvati nella cartella src > androidTest > java > com.example.username.appname del modulo dell'app su cui hai registrato il test.
Esegui un test Espresso in locale
Per eseguire un test Espresso, utilizza la finestra Project sul lato sinistro dell'IDE di Android Studio:
- Apri la cartella del modulo dell'app desiderata e vai al test che vuoi eseguire.
La posizione del test dipende dalla posizione della root del test di strumentazione e dal nome del pacchetto dell'attività avviata. I seguenti
esempi mostrano dove verrebbe salvato un test per l'app di test di Notes:
- Se utilizzi la vista Android all'interno della finestra, vai a java > com.example.nomeutente.nomeapp (androidTest).
- Se utilizzi la visualizzazione Progetto all'interno della finestra, vai a src > androidTest > java > com.example.nomeutente.nomeapp all'interno della cartella del modulo.
- Fai clic con il tasto destro del mouse sul test e fai clic su Esegui "testName".
- In alternativa, puoi aprire il file di test e fare clic con il tasto destro del mouse sulla classe o sul metodo di test generati. Scopri di più su come eseguire test nella pagina Testare la tua app.
- Nella finestra Seleziona la destinazione del deployment, scegli il dispositivo su cui vuoi eseguire il test. Se necessario, crea un nuovo dispositivo virtuale Android. Fai clic su OK.
Monitora l'avanzamento del test nella finestra Esegui nella parte inferiore dell'IDE. Android Studio esegue una build completa del progetto e apre una scheda con il nome del test nella finestra Esegui, come mostrato nella figura 3. Puoi verificare se il test è stato superato o meno in questa scheda, nonché quanto tempo è stato necessario per eseguirlo. Al termine del test, la scheda registrerà "Test eseguiti fino al completamento".

Figura 3. Esempio di output nella finestra Esegui dopo aver eseguito un test Espresso in locale.
Per saperne di più sulla scrittura di configurazioni di esecuzione di test, consulta la sezione "Definizione di una configurazione di test per una classe o un metodo" in Creare e modificare configurazioni di esecuzione/debug.
Esegui un test Espresso con Firebase Test Lab per Android
Puoi utilizzare i test generati da Espresso Test Recorder con Firebase Test Lab per testare la tua app nel cloud su centinaia di configurazioni di dispositivi. Non è previsto alcun costo per testare l'app con Test Lab entro la quota giornaliera gratuita del piano Spark. Per eseguire test Espresso con Firebase Test Lab, crea un progetto Firebase per la tua app e segui le istruzioni per eseguire i test con Firebase Test Lab da Android Studio.

Figura 4. Esempio di output nella finestra Esegui dopo aver eseguito un test con Firebase Test Lab su più dispositivi.