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 puedes personalizarla. Las pruebas de Espresso exponen claramente las expectativas, las interacciones y las afirmaciones sin la distracción del contenido estándar, la infraestructura personalizada o los complicados detalles de implementación que se interponen en el camino.

Las pruebas de Espresso se ejecutan con una rapidez óptima. Te permiten dejar atrás esperas, sincronizaciones, tiempos inactivos y sondeos, mientras manipulan y afirman en la IU cuándo están 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 en modo de prueba pueden aprovecharlo al máximo.

Capacidades de sincronización

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

  • La cola de mensajes está vacía.
  • 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 afirmación de la IU pueda ocurrir en un momento específico. Esta capacidad brinda resultados de prueba más confiables y seguros.

Paquetes

  • espresso-core: Contiene comparadores, acciones y afirmaciones de 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, comprobaciones 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 cómo usar Espresso en las pruebas de Android, consulta los siguientes recursos.

Ejemplos