Espresso
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Utilisez Espresso pour écrire des tests d'interface utilisateur Android concis, attrayants et fiables.
L'extrait de code suivant présente un exemple de 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 de base est petite, prévisible et facile à apprendre, tout en restant ouverte pour
la personnalisation. Les tests Espresso indiquent les attentes, les interactions et les assertions
sans la distraction du contenu récurrent, de l'infrastructure personnalisée
ou des détails d'implémentation
désordonnés qui gênent la propagation.
Les tests Espresso s'exécutent rapidement. Il vous permet d'oublier les temps d'attente, de synchronisation, de veille,
et effectue un sondage pendant qu'il manipule l'application
de l'UI lorsqu'elle est au repos.
Audience cible
Espresso s'adresse aux développeurs, qui pensent que les tests automatisés sont
font partie intégrante du cycle de vie du développement. Bien qu'il puisse être utilisé pour les tests
test, mais toute la puissance d'Espresso est exploitée par les personnes
du codebase testé.
Fonctionnalités de synchronisation
Chaque fois que votre test appelle
onView()
,
Espresso attend d'effectuer l'action ou l'assertion d'UI correspondante jusqu'à ce que
les conditions de synchronisation suivantes sont remplies:
- La file d'attente de messages ne contient aucun message dont Espresso a besoin pour immédiatement
processus.
- Aucune instance de
AsyncTask
n'est en cours d'exécution
pour une tâche.
- Toutes les valeurs définies par le développeur
ressources inactives inactives.
En effectuant ces vérifications, Espresso augmente considérablement la probabilité que
une seule action ou assertion d'UI peut se produire à la fois. Cette fonctionnalité
vous permet d'obtenir des résultats
plus fiables et plus fiables.
Packages
espresso-core
: contient les outils de mise en correspondance View
principaux et de base, les actions et
assertions. Voir
Bases
et Recettes.
espresso-web
: contient les ressources pour la prise en charge WebView
.
espresso-idling-resource
–
Mécanisme d'Espresso pour la synchronisation avec les tâches d'arrière-plan.
espresso-contrib
: contributions externes contenant DatePicker
,
les actions RecyclerView
et Drawer
, les vérifications de l'accessibilité et
CountingIdlingResource
espresso-intents
–
Extension permettant de valider et de bouchonner les intents à des fins de tests hermétiques.
espresso-remote
: emplacement de la fonctionnalité multiprocessus d'Espresso.
Pour en savoir plus sur les dernières versions, consultez les
notes de version.
Ressources supplémentaires
Pour en savoir plus sur l'utilisation d'Espresso lors des tests sur Android, consultez le
les ressources suivantes.
Exemples
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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)"]]