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 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 todas las pruebas de funcionamiento de Espresso son aprovechadas por aquellos que están familiarizados con el base de código en 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.
  • Todas las métricas definidas 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