Espresso
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Używaj Espresso, aby pisać zwięzłe, atrakcyjne i rzetelne testy interfejsu Androida.
Poniższy fragment kodu zawiera przykładowy 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()));
}

Podstawowy interfejs API jest mały, przewidywalny i łatwy do opanowania, ale nadal można go używać
i personalizacji reklam. Espresso sprawdza oczekiwania, interakcje i twierdzenia
bez rozproszenia uwagi przez schematyczne treści,
niestandardową infrastrukturę
lub skomplikowane szczegóły implementacji,
które przeszkodzą w działaniu.
Testy Espresso przebiegają optymalnie szybko. Pozwala na odczekanie, synchronizację, uśpienie
i sonduje za nimi, gdy manipuluje i głosuje na aplikację
Interfejs użytkownika w stanie spoczynku.
Docelowi odbiorcy
Espresso jest skierowany do programistów, którzy uważają, że automatyczne testowanie to
w całym cyklu programowania. Może być używana do tworzenia czarnej skrzynki
Testowanie funkcji Espresso jest odblokowywane przez osoby, które znają
bazy kodu w trakcie testów.
Możliwości synchronizacji
Za każdym razem, gdy test powoduje wywołanie
onView()
Espresso czeka na wykonanie odpowiedniego działania interfejsu lub asercji do momentu
są spełnione te warunki synchronizacji:
- W kolejce wiadomości nie ma żadnych wiadomości, które Espresso musi mieć natychmiast
proces tworzenia konta.
- Nie ma obecnie uruchomionych instancji
AsyncTask
zadanie.
- Wszystkie definiowane przez dewelopera
nieaktywne zasoby są nieaktywne.
Przeprowadzając te testy, Espresso znacznie zwiększa prawdopodobieństwo
w danym momencie może mieć miejsce tylko jedno działanie lub jedno potwierdzenie w interfejsie. Ta funkcja
pozwala uzyskać bardziej wiarygodne wyniki testów.
Pakiety
espresso-core
– zawiera podstawowe i podstawowe elementy dopasowania typu View
, działania oraz
asercji. Zobacz
Podstawy
i Przepisy.
espresso-web
– zawiera zasoby pomocy dotyczące WebView
.
espresso-idling-resource
–
Mechanizm Espresso do synchronizacji z zadaniami w tle.
espresso-contrib
– treści opublikowane przez użytkowników zewnętrznych, które zawierają te treści: DatePicker
,
Działania RecyclerView
i Drawer
, kontrole ułatwień dostępu oraz
CountingIdlingResource
.
espresso-intents
–
Rozszerzenie służące do weryfikacji i skrócenia intencji testów hermetycznych.
espresso-remote
– lokalizacja funkcji wieloprocesowej w Espresso.
Więcej informacji o najnowszych wersjach znajdziesz w
informacjami o wersji.
Dodatkowe materiały
Więcej informacji o używaniu Espresso w testach na Androidzie znajdziesz w
poniższe zasoby.
Próbki
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-27 UTC."],[],[],null,["# Espresso\n\nUse Espresso to write concise, beautiful, and reliable Android UI tests.\n\nThe following code snippet shows an example of an Espresso test:\n\n\u003cbr /\u003e\n\n### Kotlin\n\n```kotlin\n@Test\nfun greeterSaysHello() {\n onView(withId(R.id.name_field)).perform(typeText(\"Steve\"))\n onView(withId(R.id.greet_button)).perform(click())\n onView(withText(\"Hello Steve!\")).check(matches(isDisplayed()))\n}\n```\n\n### Java\n\n```java\n@Test\npublic void greeterSaysHello() {\n onView(withId(R.id.name_field)).perform(typeText(\"Steve\"));\n onView(withId(R.id.greet_button)).perform(click());\n onView(withText(\"Hello Steve!\")).check(matches(isDisplayed()));\n}\n```\n\n\u003cbr /\u003e\n\nThe core API is small, predictable, and easy to learn and yet remains open for\ncustomization. Espresso tests state expectations, interactions, and assertions\nclearly without the distraction of boilerplate content, custom infrastructure,\nor messy implementation details getting in the way.\n\nEspresso tests run optimally fast! It lets you leave your waits, syncs, sleeps,\nand polls behind while it manipulates and asserts on the application\nUI when it is at rest.\n\nTarget audience\n---------------\n\nEspresso is targeted at developers, who believe that automated testing is an\nintegral part of the development lifecycle. While it can be used for black-box\ntesting, Espresso's full power is unlocked by those who are familiar with the\ncodebase under test.\n\nSynchronization capabilities\n----------------------------\n\nEach time your test invokes\n[`onView()`](/reference/androidx/test/espresso/Espresso#onView(org.hamcrest.Matcher%3Candroid.view.View%3E)),\nEspresso waits to perform the corresponding UI action or assertion until the\nfollowing synchronization conditions are met:\n\n- The message queue doesn't have any messages that Espresso needs to immediately process.\n- There are no instances of [AsyncTask](/reference/android/os/AsyncTask) currently executing a task.\n- All developer-defined [idling resources](/training/testing/espresso/idling-resource) are idle.\n\nBy performing these checks, Espresso substantially increases the likelihood that\nonly one UI action or assertion can occur at any given time. This capability\ngives you more reliable and dependable test results.\n\nPackages\n--------\n\n- `espresso-core` - Contains core and basic `View` matchers, actions, and assertions. See [Basics](/training/testing/espresso/basics) and [Recipes](/training/testing/espresso/recipes).\n- [`espresso-web`](/training/testing/espresso/web) - Contains resources for `WebView` support.\n- [`espresso-idling-resource`](/training/testing/espresso/idling-resource) - Espresso's mechanism for synchronization with background jobs.\n- `espresso-contrib` - External contributions that contain `DatePicker`, `RecyclerView` and `Drawer` actions, accessibility checks, and `CountingIdlingResource`.\n- [`espresso-intents`](/training/testing/espresso/intents) - Extension to validate and stub intents for hermetic testing.\n- `espresso-remote` - Location of Espresso's [multi-process](/training/testing/espresso/multiprocess) functionality.\n\nYou can learn more about the latest versions by reading the\n[release notes](/topic/libraries/testing-support-library/release-notes).\n\nAdditional resources\n--------------------\n\nFor more information about using Espresso in Android tests, consult the\nfollowing resources.\n\n### Samples\n\n- [Espresso Code Samples](https://github.com/googlesamples/android-testing) includes a full selection of Espresso samples.\n- [BasicSample](https://github.com/android/testing-samples/tree/main/ui/espresso/BasicSample): Basic Espresso sample.\n- [(more...)](/training/testing/espresso/additional-resources#samples)"]]