Espresso

Verwende Espresso, um prägnante, ansprechende und zuverlässige Android-UI-Tests zu 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 Kern-API ist klein, vorhersehbar, einfach zu erlernen und dennoch offen für Personalisierung. Espresso-Tests geben Erwartungen, Interaktionen und Assertions an ohne Ablenkungen von Textbausteinen, benutzerdefinierter Infrastruktur, oder unklare Implementierungsdetails.

Espressotests laufen optimal schnell! So kannst du deine Wartezeiten, Synchronisierungen, Schlafenszeiten und fragt nach, während die Anwendung manipuliert und geltend gemacht wird. UI, wenn sie inaktiv ist.

Zielgruppe

Espresso richtet sich an Entwickler, die der Meinung sind, dass automatisierte Tests wesentlicher Bestandteil des Entwicklungszyklus. Diese Methode eignet sich zwar für Blackboxes, kann die volle Leistung von Espresso von denjenigen freigeschaltet werden, die mit der Codebasis zu testen.

Synchronisierungsfunktionen

Jedes Mal, wenn Ihr Test einen Aufruf onView(), Espresso wartet mit der Durchführung der entsprechenden UI-Aktion oder Assertion, bis das folgende Synchronisierungsbedingungen erfüllt sind:

  • Die Nachrichtenwarteschlange enthält keine Nachrichten, die Espresso sofort lesen muss. .
  • Es werden derzeit keine Instanzen von AsyncTask ausgeführt einer Aufgabe.
  • Alle vom Entwickler definiert inaktive Ressourcen sind inaktiv.

Durch diese Überprüfungen erhöht Espresso die Wahrscheinlichkeit deutlich, kann jeweils nur eine UI-Aktion oder Assertion ausgeführt werden. Diese Fähigkeit zuverlässigere und zuverlässigere Testergebnisse.

Pakete

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

Weitere Informationen zu den neuesten Versionen finden Sie in der Versionshinweise.

Weitere Informationen

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

Produktproben