Espresso

Mit Espresso kannst du prägnante, ansprechende und zuverlässige Tests für die Android-Benutzeroberfläche schreiben.

Das folgende Code-Snippet zeigt ein Beispiel für einen Espresso-Test:

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()));
}

Die Core API ist klein, vorhersehbar und leicht zu erlernen und kann dennoch angepasst werden. Espresso testet Erwartungen, Interaktionen und Assertions klar und deutlich, ohne dass die Ablenkung durch Boilerplate-Inhalte, benutzerdefinierte Infrastruktur oder unübersichtliche Implementierungsdetails beeinträchtigt wird.

Espresso-Tests verlaufen optimal und schnell! Damit können Sie Wartezeiten, Synchronisierungen, Ruhezustand und Umfragen hinter sich lassen, während es die Benutzeroberfläche der Anwendung manipuliert und im Ruhezustand bestätigt.

Zielgruppe

Espresso richtet sich an Entwickler, die glauben, dass automatisierte Tests ein integraler Bestandteil des Entwicklungszyklus sind. Espresso kann zwar für Blackbox-Tests verwendet werden, aber diejenigen, die mit der zu testenden Codebasis vertraut sind, können die volle Leistung von Espresso nutzen.

Synchronisierungsfunktionen

Jedes Mal, wenn Ihr Test onView() aufruft, wartet Espresso mit der Ausführung der entsprechenden UI-Aktion oder Assertion, bis die folgenden Synchronisierungsbedingungen erfüllt sind:

  • Die Nachrichtenwarteschlange enthält keine Nachrichten, die Espresso sofort verarbeiten muss.
  • Derzeit wird eine Aufgabe von AsyncTask auf keinen Instanzen ausgeführt.
  • Alle vom Entwickler definierten inaktiven Ressourcen sind inaktiv.

Durch diese Prüfungen erhöht Espresso deutlich die Wahrscheinlichkeit, dass jeweils nur eine UI-Aktion oder Assertion auftreten kann. So erhalten Sie zuverlässigere und zuverlässigere Testergebnisse.

Pakete

  • espresso-core: Enthält grundlegende und grundlegende View-Matcher, Aktionen und Assertions. Weitere Informationen finden Sie unter Grundlagen und Rezepte.
  • espresso-web: enthält Ressourcen für die WebView-Unterstützung.
  • espresso-idling-resource: Der Espresso-Mechanismus zur Synchronisierung mit Hintergrundjobs.
  • espresso-contrib: Externe Beiträge, die DatePicker-, RecyclerView- und Drawer-Aktionen, Barrierefreiheitsprüfungen und CountingIdlingResource enthalten.
  • espresso-intents: Erweiterung zur Validierung und Stub-Intents für hermetische Tests.
  • espresso-remote: Speicherort der Multi-Process-Funktion von Espresso.

Weitere Informationen zu den neuesten Versionen finden Sie in den Versionshinweisen.

Weitere Informationen

Weitere Informationen zur Verwendung von Espresso in Android-Tests finden Sie in den folgenden Ressourcen.

Produktproben