espresso
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Usa Espresso per scrivere test dell'UI Android concisi, accattivanti e affidabili.
Il seguente snippet di codice mostra un esempio di test del caffè 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 principale è piccola, prevedibile e facile da apprendere, ma rimane aperta al pubblico
personalizzazione. I test di Espresso indicano aspettative, interazioni e asserzioni
chiaramente senza la distrazione dei contenuti boilerplate, dell'infrastruttura personalizzata
o disordinati dettagli di implementazione.
I test del caffè espresso sono veloci e ottimali. Ti permette di attendere, sincronizzare e dormire
e si pone dietro, mentre manipola e asserisce l'applicazione
UI quando è at-rest.
Pubblico di destinazione
Espresso si rivolge agli sviluppatori, che ritengono che i test automatici siano
parte integrante del ciclo di vita
di sviluppo. Sebbene possa essere utilizzato per black-box
test, tutta la potenza di Espresso viene sbloccata da chi ha familiarità con
codebase sottoposto a test.
Funzionalità di sincronizzazione
Ogni volta che il test richiama
onView()
,
Espresso attende di eseguire l'azione o l'asserzione nell'interfaccia utente corrispondente finché
vengono soddisfatte le seguenti condizioni di sincronizzazione:
- La coda di messaggi non contiene messaggi di cui Espresso deve accedere immediatamente.
e il processo di sviluppo.
- Non sono presenti istanze di
AsyncTask
attualmente in esecuzione
un'attività.
- Tutti i contenuti definiti dallo sviluppatore
risorse inattive sono inattive.
Eseguendo questi controlli, Espresso aumenta notevolmente la probabilità che
può essere eseguita una sola azione o asserzione nell'interfaccia utente alla volta. Questa funzionalità
offre risultati dei test più affidabili e affidabili.
Pacchetti
espresso-core
- Contiene matcher View
principali e di base, azioni e
le asserzioni. Consulta
Nozioni di base
e Recipes.
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 DatePicker
,
Azioni RecyclerView
e Drawer
, controlli di accessibilità e
CountingIdlingResource
.
espresso-intents
-
Estensione per la convalida e lo stub degli intent per i test ermetici.
espresso-remote
: posizione della funzionalità multiprocesso di Espresso.
Per scoprire di più sulle versioni più recenti, consulta il
note di rilascio.
Risorse aggiuntive
Per ulteriori informazioni sull'uso di Espresso nei test Android, consulta
le seguenti risorse.
Campioni
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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)"]]