Sommario:
- Come modificare la build
- Per aggiungere un test ad Android, è necessario assicurarsi di inserirlo nel posto giusto. Apri la tua directory src in Android Studio e crea una nuova directory chiamata androidTest se non esiste già. All'interno di questa directory, crea una directory chiamata java.
- Innanzitutto, avviare un emulatore o collegare il telefono al computer tramite USB.
- Perché passare attraverso tutto questo solo per aggiungere un semplice test? Si potrebbe pensare che non valga la pena testare tali funzionalità di base.
- I test Espresso vengono scritti utilizzando il seguente formato:
- Quindi con questo in mente, aggiungiamo un altro test. Aggiungi le righe in grassetto alla tua classe di test:
Video: Create UI tests with Espresso Test Recorder 2024
Come sviluppatore, conosci già l'importanza di scrivere test per il tuo codice. Questo è altrettanto vero per lo sviluppo di app Android come per qualsiasi altro tipo di sviluppo. Fortunatamente, Android semplifica l'aggiunta di test alla tua app.
Le seguenti informazioni illustrano le basi dell'aggiunta di test all'app Android utilizzando Espresso. Espresso è una libreria fornita con l'SDK di Android per rendere più semplice il test delle interfacce utente Android.
Assicurati che l'app stia utilizzando il Gradle 2. 1. 1 o successivo con gli strumenti di build di Android 21. 1. 2 o successive.
Per aggiungere un test Espresso alla tua app, dovrai:
-
Modificare lo script di build
-
Scrivi il test
-
Esegui il test
Come modificare la build
Apri il costruire. file gradle per la tua app. Se la tua app ha più moduli, ti consigliamo di aprire la build. file gradle nel modulo dell'app, non nel modulo root. Quindi per l'app Attiva / disattiva modalità silenziosa, aprirai SilentModeToggle / build. Gradle.
Aggiungi la seguente dipendenza alla sezione delle dipendenze della tua build. file gradle:
dipendenze {… // Test dipendenze androidTestCompile ' com. Android. supporto. test. espresso: core espresso: 2. 0 ' }
Questo indica ad Android Studio di includere la libreria Espresso nelle dipendenze del test. La libreria Espresso non verrà incorporata nell'apk in cui viene spedito, ma sarà incluso nel tuo apk di test in modo che i tuoi test possano utilizzarlo.
Quindi, aggiungi quanto segue al tuo defaultConfig:
defaultConfig {… // Il test runner a usa quando esegue il < test. testInstrumentationRunner " supporto android.prove runner.AndroidJUnitRunner " } Questo indica ad Android quale strumentazione utilizzare per eseguire i test. Non hai bisogno di sapere molto sulla strumentazione, a parte questo è quello che devi usare ogni volta che vuoi eseguire i test Espresso.
Come scrivere il test
Per aggiungere un test ad Android, è necessario assicurarsi di inserirlo nel posto giusto. Apri la tua directory src in Android Studio e crea una nuova directory chiamata androidTest se non esiste già. All'interno di questa directory, crea una directory chiamata java.
All'interno della directory appena creata, creare un nuovo file denominato SilentModeToggleEspressoTest. Giava. Puoi effettivamente nominarlo come vuoi, ma assicurati che termini in "Test".Giava".
classe pubblica SilentModeToggleEspressoTest estende ActivityInstrumentationTestCase2 {public SilentModeToggleEspressoTest () {super (MainActivity. Class);}}
Crea una nuova classe denominata SilentModeToggleEspressoTest. Estende ActivityInstrumentationTestCase2, che userai per scrivere la maggior parte dei test della tua app. ActivityInstrumentationTestCase2 è parametrizzato sul tipo di attività che si desidera testare. Per l'app SilentModeToggle, l'attività principale dell'app viene chiamata, in modo abbastanza appropriato, MainActivity.
Prima di poter scrivere il test vero e proprio, devi configurarlo. Per fare ciò, aggiungi il seguente metodo alla tua classe di test:
@Override setUp () di void pubblico genera Exception {super. impostare(); getActivity ();}
Per testare un'attività utilizzando Espresso, è necessario innanzitutto creare l'attività sottoposta a test. Questo viene fatto chiamando getActivity (), che crea e avvia l'attività per te se non esiste già. Lo fai sopra nel metodo setUp () per la classe, che viene eseguito prima dell'esecuzione di ognuno dei tuoi test.
Ora, finalmente, puoi scrivere il test. Aggiungi il seguente metodo alla tua classe:
public void testPhoneIconIsDisplayed () {// Quando la vista phone_icon è disponibile, // controlla che sia visualizzata. onView (withId (R. id. phone_icon)). check (matches (isDisplayed ()));}
È necessario importare i metodi onView, withId, check, matches e isDisplayed. Android Studio offre assistenza per le importazioni statiche necessarie.
I test dell'Espresso sono progettati per essere molto facili da leggere. Come puoi vedere qui, questo test è in attesa fino alla vista con ID R. id. phone_icon è disponibile e, una volta che è, controlla che la vista sia visualizzata.
Il prossimo passo è eseguire il test.
Come eseguire il test
Innanzitutto, avviare un emulatore o collegare il telefono al computer tramite USB.
Una volta connesso e in esecuzione il dispositivo, fare clic con il pulsante destro del mouse sulla directory java in AndroidTest, quindi selezionare Esegui tutti i test (con l'icona di Android):
Se il test viene eseguito correttamente, si dovrebbe vedere qualcosa del tipo seguente:
Perché i test sono importanti?
Perché passare attraverso tutto questo solo per aggiungere un semplice test? Si potrebbe pensare che non valga la pena testare tali funzionalità di base.
L'app Attiva / disattiva modalità silenziosa è abbastanza semplice che forse un programmatore pigro potrebbe giustificare il salto dei test. Può essere.
Se aggiungi un paio di test per aggiungere, rimuovere e modificare le attività su quell'app, hai la tranquillità di sapere che ogni volta che apporti una modifica, i tuoi test automatici cattureranno eventuali bug significativi che introduci.
Vuoi veramente testare nuovamente tutte le funzionalità della tua app su telefoni, tablet, orologi e TV, e poi ripetere tutto sui vecchi dispositivi per testare la compatibilità con le versioni precedenti?L'aggiunta di test può occuparsi di gran parte di questa difficoltà per te.
Informazioni sui test Espresso
I test Espresso vengono scritti utilizzando il seguente formato:
onView (Matcher). eseguire (ViewAction). check (ViewAssertion)
Il seguente cheat sheet, per gentile concessione del progetto Espresso 2. 0, è uno strumento utile per scrivere i test Espresso. Elenca la sintassi generale per i test Espresso e elenca anche i tipi più comuni di garanti: ViewAction e ViewAssertion.
Un modo rapido per scrivere test Espresso è approfittare della funzionalità di completamento automatico di Android Studio. Se sai che molti matchers sono nella classe ViewMatchers, la maggior parte delle azioni di visualizzazione sono in ViewActions, e la maggior parte delle asserzioni di visualizzazione sono in ViewAssertions, quindi puoi utilizzare il completamento automatico per trovare il giusto matcher:
Aggiungiamo un altro
Quindi con questo in mente, aggiungiamo un altro test. Aggiungi le righe in grassetto alla tua classe di test:
classe pubblica SilentModeToggleEspressoTest estende ActivityInstrumentationTestCase2 {
AudioManager audioManager; … @Override setUp () del vuoto pubblico genera Exception {super. impostare(); attività attività = getActivity (); // Recupero una AudioManager da l'attività AudioManager = (AudioManager) attività. getSystemService (Context. AUDIO_SERVICE); // make che del suoneria modalità è Ripristina a normale AudioManager. setRingerMode (AudioManager. RINGER_MODE_NORMAL); } … pubblici vuoto testCanToggleIcon () { // Quando del phone_icon Vista è > disponibile, fare clic su it onView (withId (R. id. phone_icon)). eseguire (clicca ()); // Poi assert che del telefono è ora in silenziosa Modalità. assertTrue (RingerHelper. IsPhoneSilent (audioManager)); } } Questo test trova il pulsante di attivazione e disattivazione, quindi verifica che la modalità silenziosa dell'app sia stata attivata. Il codice setUp () assicura che la modalità suoneria venga ripristinata alla normalità prima dell'esecuzione del test. Ora, ogni volta che apporti una modifica alla tua app, devi solo eseguire questi test case per avere la certezza di non aver violato nulla di importante.
Se si dispone di un server di integrazione continua, tutto ciò che si deve fare è eseguire la destinazione ConnectedCheck in gradle per eseguire i test case con ogni commit effettuato. Se non hai ancora un server di integrazione continua, forse ora è il momento giusto per esaminarne uno! Dai un'occhiata a travis-ci. org per una buona opzione.
Testare le app su Android è un argomento profondo e coinvolto, ma ora dovresti avere tutto il necessario per iniziare a testare le tue app!
Se ti piacerebbe essere più avanzato, potresti essere interessato ad alcune delle seguenti risorse:
Usa Spoon per testare su più dispositivi.Prova Fork per eseguire rapidamente test su più dispositivi.
-
Prova travis-ci o Jenkins per un server di integrazione continua.
-
Guarda l'introduzione di Michael Bailey ai test Android su YouTube.