Espresso
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Usa Espresso para escribir pruebas de la IU de Android concisas, eficaces y confiables.
En el siguiente fragmento de código, se muestra un ejemplo de una prueba de 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()));
}

La API principal es pequeña, predecible y fácil de aprender, pero permanece abierta para
personalización. Las pruebas Espresso exponen las expectativas, las interacciones y las aserciones
claramente sin la distracción del contenido estándar, la infraestructura personalizada
o desordenados que se interponen en el camino.
Las pruebas de Espresso se ejecutan con una rapidez óptima. Te permite dejar de esperar,
sincronizar y dormir
y sondea detrás de escena mientras
manipula y confirma en la aplicación
IU cuando está en reposo.
Público objetivo
Espresso está dirigido a desarrolladores, que creen que las pruebas automatizadas son un
es una parte fundamental
del ciclo de vida del desarrollo. Si bien se puede usar para caja negra
la potencia de Espresso es desbloqueada por quienes están familiarizados con el
base de código bajo prueba.
Capacidades de sincronización
Cada vez que la prueba invoca
onView()
:
Espresso espera para realizar la acción o aserción de IU correspondiente hasta que
se cumplen las siguientes condiciones de sincronización:
- La cola de mensajes no tiene mensajes que Espresso deba enviar de inmediato.
el proceso de administración de recursos.
- No hay instancias de
AsyncTask
en ejecución por el momento
una tarea.
- Todos los recursos definidos por el desarrollador
Los recursos inactivos están inactivos.
Al realizar estas verificaciones, Espresso aumenta sustancialmente la probabilidad de que
solo puede ocurrir una acción o aserción de IU en cualquier momento. Esta función
proporciona resultados de prueba
más confiables y confiables.
Paquetes
espresso-core
- Contiene View
comparadores, acciones y
aserciones. Consulta
Conceptos básicos
y Recipes.
espresso-web
: contiene recursos para la compatibilidad con WebView
.
espresso-idling-resource
:
Mecanismo de Espresso para la sincronización con trabajos en segundo plano.
espresso-contrib
: contribuciones externas que contienen DatePicker
las acciones de RecyclerView
y Drawer
, las verificaciones de accesibilidad y
CountingIdlingResource
espresso-intents
:
Extensión para validar y hacer stubbing de intents para pruebas herméticas.
espresso-remote
: ubicación de la funcionalidad de varios procesos de Espresso.
Para obtener más información sobre las últimas versiones, lee el
notas de la versión.
Recursos adicionales
Para obtener más información sobre el uso de Espresso en pruebas de Android, consulta el
los siguientes recursos.
Ejemplos
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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)"]]