Espresso

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 la personalización. Las pruebas Espresso exponen claramente las expectativas, las interacciones y las aserciones sin la distracción del contenido estándar, la infraestructura personalizada o los detalles de implementación desordenados que se interponen.

Las pruebas de Espresso se ejecutan con una rapidez óptima. Te permite dejar atrás tus esperas, sincronizaciones, suspensiones y sondeos mientras manipula y afirma en la IU de la aplicación cuando está en reposo.

Público objetivo

Espresso está dirigido a desarrolladores, que creen que las pruebas automatizadas son una parte integral del ciclo de vida del desarrollo. Si bien Espresso se puede usar para pruebas de caja negra, quienes están familiarizados con la base de código bajo prueba pueden desbloquear toda su potencia.

Capacidades de sincronización

Cada vez que la prueba invoca a onView(), Espresso espera para realizar la acción o aserción de la IU correspondiente hasta que se cumplan las siguientes condiciones de sincronización:

  • La cola de mensajes no tiene ningún mensaje que Espresso deba procesar de inmediato.
  • No hay instancias de AsyncTask ejecutando una tarea.
  • Todos los recursos inactivos definidos por el desarrollador están inactivos.

Al realizar estas comprobaciones, Espresso aumenta sustancialmente la probabilidad de que solo una acción o aserción de la IU pueda ocurrir en un momento determinado. Esta capacidad te brinda resultados de prueba más confiables y confiables.

Paquetes

  • espresso-core: Contiene comparadores, acciones y aserciones View centrales y básicas. Consulta Conceptos básicos y Recetas.
  • espresso-web: contiene recursos para la compatibilidad con WebView.
  • espresso-idling-resource: Es el mecanismo de Espresso para la sincronización con trabajos en segundo plano.
  • espresso-contrib: Contribuciones externas que contienen acciones DatePicker, RecyclerView y Drawer, 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, consulta las notas de la versión.

Recursos adicionales

Para obtener más información sobre el uso de Espresso en pruebas de Android, consulta los siguientes recursos.

Ejemplos