espresso

Usa Espresso per scrivere test dell'interfaccia utente Android concisi, accattivanti e affidabili.

Il seguente snippet di codice mostra un esempio di test Espresso:

Kotlin

@Test
fun greeterSaysHello() {
    onView(withId(R.id.name_field)).perform(typeText("Steve"))
    onView(withId(R.id.greet_button)).perform(click())
    onView(withText("Hello Steve!")).check(matches(isDisplayed()))
}

Java

@Test
public void greeterSaysHello() {
    onView(withId(R.id.name_field)).perform(typeText("Steve"));
    onView(withId(R.id.greet_button)).perform(click());
    onView(withText("Hello Steve!")).check(matches(isDisplayed()));
}

L'API di base è piccola, prevedibile e facile da imparare, ma rimane aperta alla personalizzazione. I test Espresso dichiarano chiaramente aspettative, interazioni e affermazioni senza la distrazione dei contenuti boilerplate, dell'infrastruttura personalizzata o dei disordinati dettagli di implementazione.

I test del caffè espresso vengono eseguiti in modo ottimale in tempi rapidi. Ti consente di abbandonare le attese, le sincronizzazioni, i periodi di sospensione e i sondaggi mentre manipola e rivendica i dati nell'interfaccia utente dell'applicazione quando è at-rest.

Pubblico di destinazione

Espresso si rivolge agli sviluppatori, che ritengono che i test automatici siano una parte integrale del ciclo di vita dello sviluppo. Sebbene possa essere utilizzato per i test black-box, tutta la potenza di Espresso è sbloccata da coloro che hanno familiarità con il codebase in fase di test.

Capacità di sincronizzazione

Ogni volta che il test richiama onView(), Espresso attende di eseguire l'azione o l'asserzione dell'interfaccia utente corrispondente fino a quando non vengono soddisfatte le seguenti condizioni di sincronizzazione:

  • La coda dei messaggi non contiene messaggi che Espresso deve elaborare immediatamente.
  • Non sono presenti istanze di AsyncTask che attualmente eseguono un'attività.
  • Tutte le risorse di inattività definite dallo sviluppatore sono inattive.

Eseguendo questi controlli, Espresso aumenta notevolmente la probabilità che si verifichi una sola azione o asserzione dell'interfaccia utente alla volta. Questa funzionalità offre risultati dei test più affidabili e affidabili.

Pacchetti

  • espresso-core: contiene i matcher, le azioni e le dichiarazioni principali e di base di View. Vedi Nozioni di base e Ricette.
  • espresso-web: contiene risorse per l'assistenza WebView.
  • espresso-idling-resource - Meccanismo di espresso per la sincronizzazione con i job in background.
  • espresso-contrib - Contributi esterni che contengono azioni DatePicker, RecyclerView e Drawer, controlli di accessibilità e CountingIdlingResource.
  • espresso-intents - Estensione per convalidare e stub gli intenti per i test ermetici.
  • espresso-remote: posizione della funzionalità multi-processo di Espresso.

Per ulteriori informazioni sulle versioni più recenti, consulta le note di rilascio.

Risorse aggiuntive

Per ulteriori informazioni sull'utilizzo di Espresso nei test Android, consulta le risorse seguenti.

Samples