Archivo de notas de la versión de prueba

AndroidX Test Espresso 3.1.1, Runner 1.1.1, Rules 1.1.1, Monitor 1.1.1, AndroidTestOrchestrator 1.1.1, Core 1.1.0, Truth 1.1.0, JUnit 1.1.0 (13 de diciembre de 2018)

Esta es la versión estable de AndroidX Test 1.1.0

  • Principal
    • ActivityScenario admite actividades que inician otra actividad

AndroidX Test Espresso 3.1.1-beta01, Runner 1.1.1-beta01, Rules 1.1.1-beta01, Monitor 1.1.1-beta01, AndroidTestOrchestrator 1.1.1-beta01, Core 1.1.0-beta01, Truth 1.1.0-beta01, JUnit 1.1.0-beta01 (12 de junio de 2018)

  • Principal
    • Nuevo artefacto de extensión core-ktx kotlin. Incluye una API de ActivityScenario.launchActivity compatible con Kotlin.
    • Nueva API de ActivityScenario para iniciar actividades con intents personalizados.
    • Nueva API de ActivityScenario para recibir un resultado de Activity.
    • Ahora es posible cerrar ActivityScenario.
  • Espresso
    • Modifica withResourceNameMatcher y HumanReadables para que sean compatibles con la API nivel 28.
    • Actualiza la descripción de ReplaceTextAction para incluir stringToBeSet.
    • Compatibilidad con Espresso en el modo de generador de bucles de Robolectric en pausa.
  • JUnit
    • Nueva API de ActivityScenarioRule, para iniciar y cerrar automáticamente un elemento Activity en la configuración de prueba y desconexión.
    • Nuevo artefacto de extensión junit-ktx de Kotlin. Incluye una API de ActivityScenarioRule compatible con Kotlin.
  • Runner
    • Se hizo posible que -e package y -e testFile tengan un comportamiento coherente al recibir paquetes.
  • Truth
    • Agrega las API de BundleSubject bool, parcelable y parcelableAsType.

AndroidX Test Espresso 3.1.0, Runner 1.1.0, Rules 1.1.0, Monitor 1.1.0, AndroidTestOrchestrator 1.1.0, Core 1.0.0, Truth 1.0.0, JUnit 1.0.0 (24 de octubre de 2018)

  • Todas
    • Se estableció minSdkVersion en 14 y targetSdkVersion en 28.
  • Espresso
    • Arregla withContentDescription para que funcione con tipos sin strings.
    • Se agregó compatibilidad para usar Espresso en Robolectric.
    • Problema 72798625: Espresso ViewMatchers.withText no funciona si textAllCaps está habilitado.
    • Agrega compatibilidad para insertar una secuencia de eventos de movimiento.
  • Intents
    • Se agregó la API Beta para recuperar la lista de intents, a fin de usarla con nuevas aserciones de verdad.
  • Runner
    • Agrega compatibilidad para apps instantáneas.
    • Dejó de estar disponible androidx.test.runner.AndroidJUnit4 y se lo reemplazó por androidx.test.ext.junit.runners.AndroidJUnit4.
  • Supervisar
    • Dejó de estar disponible androidx.test.InstrumentationRegistry y se lo reemplazó por androidx.test.platform.app.InstrumentationRegistry y androidx.test.core.app.ApplicationProvider.
  • AndroidTestOrchestrator
    • Solo se habilita el control de la cobertura de Orchestrator si se pasan los argumentos "coverage" y "coverageFilePath".
    • Solo se espera al depurador cuando se establece -debug, pero no para enumerar los casos de prueba de ATO. Se agregó una nueva marca de orchestratorDebug para depurar Orchestrator.
  • Principal
    • Nuevo artefacto que incluye nuevas API que admiten pruebas locales y en el dispositivo para lo siguiente:
      • Recuperar contexto: ApplicationProvider
      • Controlar ciclos de vida de actividad: ActivityScenario(Beta)
      • Compiladores para MotionEvent, PackageInfo
      • Clase de utilidad Parceables
  • Truth
    • Nuevo artefacto que incluye temas de verdad personalizados para Notification, Intent, Bundle, Parcelable y MotionEvent.
  • JUnit
    • Nuevo artefacto que incluye la clase de runner JUnit androidx.test.ext.junit.runners.AndroidJUnit4, que admite pruebas locales y en el dispositivo.

Espresso 3.0.2-beta1, Runner 1.0.2-beta1, Rules 1.0.2-beta1, Monitor 1.0.2-beta1, AndroidTestOrchestrator 1.0.2-beta1 (16 de abril de 2018)

  • Espresso
    • Cambio rotundo en la API:
      • Se nos indicó en el problema 64062890 que estábamos usando Guava Optional en nuestra API pública, lo que fue un descuido grave de nuestra parte. En consecuencia, se realizó un cambio rotundo en la API de esa versión para solucionar el problema. Colocamos un wrapper Ugly en la clase de Guava Optional, llamada EspressoOptional, que se encuentra bajo el espacio de nombres "android.support.test.espresso.util". Los desarrolladores que utilizaban la API de Guava Optional filtrada deben cambiar sus importaciones y referencias para usar EspressoOptional durante la actualización de esta nueva versión. Lamentamos las molestias que esto haya ocasionado.
    • Las API de onView() y onData() ahora tienen la marca @CheckReturnValue para evitar errores.
    • Se corrigió el archivo POM de espresso-core para que no genere dependencia de las "reglas"; en lugar de eso, la generan los POM de espresso-intents. Esto debería ser un cambio de NoOp para los desarrolladores, ya que no se pueden usar los espresso-intents sin espresso-core.
    • Problema 65486414: Falta la dependencia de Guava en Espresso.
    • Problema 65576174: Espresso IdlingResourceRegistry.sync provoca que falle la segunda prueba.
    • Problema 65568629: Espresso.onIdle no utiliza IdlingRegistry.
    • Problema 69333598: Espresso 3.0.1 no es compatible con play-services-auth:11.6.0 en el módulo de la biblioteca de Android.
    • Problema 64062890: La interfaz de AdapterViewProtocol expone un tipo opcional interno.
    • Problema 64091847: Espresso 3.0.0 NO debería depender del ejecutor de prueba.
    • Problema 73722050: espresso-contrib 3.0.2-alpha1 empaqueta las clases android.arch.{lifecycle/core}.
  • Espresso-remote
    • Este es un artefacto nuevo. Desacoplamos toda la funcionalidad de múltiples procesos de Espresso fuera del artefacto espresso-core. Esto es más sencillo y debería reducir significativamente el tamaño general y la cantidad de métodos de espresso-core.
  • Runner
    • Trunca el seguimiento de pila si es demasiado grande para una transacción de Binder. Dado que AJUR debe informar las fallas a AM a través de un IPC de Binder, debemos asegurarnos de no superar el límite de transacción de Binder, que es de 1 MB por proceso.
    • Problema 65828576: Se produce una falla de TestRequestBuilder al ejecutar la prueba en clase con @Ignore.
    • Problema 37057596: No manejamos fallas en @BeforeClass.
  • Reglas
    • Asegúrate de publicar una referencia sobre la actividad que se está probando después de los cambios en el ciclo de vida. Durante la prueba, ahora es posible manipular Activity directamente usando la referencia obtenida de #getActivity(). Si finaliza Activity y se vuelve a iniciar, la referencia que muestra #getActivity() siempre apuntará a la instancia actual de Activity.
    • Problema 64389280: GrantPermissionRule no proporciona WRITE_EXTERNAL_STORAGE.
    • Problema 37065965: ActivityTestRule pierde actividad después del cambio de orientación.
    • Problema 75254050: ActivityTestRule no actualiza la instancia de Activity durante los cambios de configuración.
    • Problema 64464625: No se puede hacer que la IU funcione en el método finish() de Activity.
  • AndroidTestOrchestrator
    • Pasa marcas -e coverage true -e coverageFilePath /sdcard/foo/ para generar archivos de cobertura en la ubicación determinada (la app debe tener permiso para escribir en la ubicación determinada). La convención de nombres de archivos de cobertura ahora tiene este aspecto: com.foo.Class#method1.ec. Ten en cuenta que esta función solo se admite cuando se ejecuta en modo aislado. Además, no se puede usar junto con la marca coverageFile de AndroidJUnitRunner, ya que los archivos de cobertura generados se reemplazan entre sí.
    • Pasa la marca -e clearPackageData si deseas que Orchestrator ejecute los comandos pm clear context.getPackageName() y pm clear targetContext.getPackageName() entre invocaciones de prueba. Ten en cuenta que el contexto en el comando clear es la app en contexto de prueba.
    • Solucionado: Al ejecutar una prueba vacía, también conocida como no @Test dentro del objetivo, el resultado de la prueba es diferente al modo heredado.
    • Problema 72758547: Test Orchestrator hace que los datos de cobertura de Jacoco estén incompletos; solo tiene los datos de la última prueba.
    • Problema 67916042: Se detuvo la ejecución de Android Test Orchestrator al fallar el proceso debido a OutOfMemory.
    • Problema 77752735: Orchestrator falla para TransactionTooLargeException.
    • Problema 77549481: Test Orchestrator debería ejecutar "pm clear" después de cada prueba.

Espresso 3.0.2-alpha1, Runner 1.0.2-alpha1, Rules 1.0.2-alpha1, AndroidTestOrchestrator 1.0.2-alpha1 (5 de diciembre de 2017)

  • Espresso

    • Intents ahora tiene una respuesta a la que se puede llamar, lo que permite que las pruebas se ejecuten después de capturar un intent activado, pero antes de mostrar un objeto Instrumentation.ActivityResult.
  • Runner

    • Divide el artefacto Maven com.android.support.test:monitor:<version> del monitor para usuarios que necesitan MonitoringInstrumentation sin ejecutar pruebas ni funciones de JUnit.

      Si usas com.android.support.test:runner:<version>, todo funciona de manera esperada, porque Gradle extrae automáticamente el módulo monitor como una dependencia del módulo runner.

    • Se agregó la marca newRunListenerOrderMode. Cuando sea true, los objetos de escucha definidos por el usuario se ejecutarán antes que los predeterminados. (Esperamos que este comportamiento se convierta finalmente en el predeterminado).

    • Problema 65828576: Falla TestRequestBuilder al ejecutar pruebas en una clase anotada con @Ignore (independiente y sin funciones de ejecución de prueba o JUnit).

  • AndroidTestOrchestrator

    • Ahora controla las pruebas vacías de la misma manera que AndroidJUnitRunner sin Orchestrator.
    • Orchestrator ahora puede manejar resultados estándar muy grandes desde AndroidJUnitRunner.

Espresso 3.0.1, Runner 1.0.1, Rules 1.0.1, AndroidTestOrchestrator 1.0.1 (28 de agosto de 2017)

  • Espresso

    • Se agregó la opción IdlingPolicy para suprimir onTimeout() cuando se adjunta un depurador de pasos a la VM.
    • Problemas 64024656, 64247586 y 64525881: no informes fallas por la carga incorrecta de clases, a menos que un usuario esté cargando clases específicas incluyendo el argumento de Runner de clase -e.
    • Problema 64877246: agrega las clases que faltan al archivo JAR de origen.
  • Runner

    • Lógica de ShardingFilter simplificada
    • Problema 65025743: el filtro @RequiresDevice ahora admite emuladores de FTL
  • AndroidTestOrchestrator

    • No dupliques las fallas del informe. Cuando falle un proceso de prueba después de un error, ahora solo se informará un error para la prueba.
    • Se corrigió Javadoc para Orchestrator.
    • Las pruebas ahora se indican como perdidas si falla el proceso remoto.
    • Ahora maneja casos de prueba ignorados.
    • Ahora excluye los casos de prueba ignorados del pie de página para que coincidan con los resultados heredados.
    • Se corrigieron los problemas relacionados con los permisos de tiempo de ejecución. En Android 7.0 (nivel de API 24) o posteriores, los informes de prueba ahora se escriben en la tarjeta SD.

Espresso 3.0.0, Runner 1.0.0, Rules 1.0.0, AndroidTestOrchestrator 1.0.0 (25 de julio de 2017, Anuncio)

Cambios rotundos

  • Todos los artefactos
    • Se dio de baja la compatibilidad con niveles de API inferiores a 15; sin embargo, el SDK mínimo todavía orienta a la API nivel 9 a fin de darles tiempo a los usuarios para actualizar.
  • Espresso
    • Se borró la clase android.support.test.espresso.contrib.CountingIdlingResource obsoleta y se movió a android.support.test.espresso.idling.CountingIdlingResource.
    • Guava ahora está separado en un espacio de nombres "interno" diferente: si accidentalmente usas la API de Guava a través de espacios de nombres de Espresso, es posible que veas fallas.
      • Quita cualquier referencia a Guava sombreado (.core.deps.guava.).
      • Actualiza tu versión de la biblioteca de compatibilidad a 25.4.0 o versiones posteriores.

Errores conocidos

  • AndroidTestOrchestrator
    • Actualmente, no se admiten los argumentos -e numShards y -e shardIndex.
    • Actualmente, no se admiten las pruebas parametrizadas.

Funciones nuevas

  • Reglas
  • AndroidTestOrchestrator
    • Android Test Orchestrator ofrece una nueva forma de recopilar y ejecutar pruebas, con énfasis en la corrección y el aislamiento. Orchestrator es un proceso de instrumentación independiente que genera un proceso de corredor de Runner para cada prueba y recopila los resultados.
      • Las fallas de la aplicación eliminan la instrumentación de Runner, pero no de Orchestrator, lo que permite que el conjunto de pruebas continúe.
      • Requiere instalar el APK de Orchestrator: 'com.android.support.test:orchestrator:1.0.0'.
      • La versión 1.0 solo tiene una interfaz de línea de comandos; se planea la integración con Android Studio y Firebase Test Labs.

Correcciones de errores

  • Espresso
    • Se mejoró la sincronización de vista raíz para reducir significativamente la inestabilidad
    • Se corrigió la corrupción de IdlingResourceRegistry
    • Se mejoró la sincronización con objetos IdlingResource
    • Problema 37132680: Espresso no espera a que se complete la creación del diálogo antes de realizar la siguiente acción
    • Problema 37103280: Espresso debe enviar las reglas del consumidor de ProGuard para que los consumidores no tengan la obligación de agregarlas
    • Problema 37094726: Espresso Intents contiene una etiqueta de aplicación innecesaria
    • Problema 37093953: no hay verificación disponible para el texto de error nulo o vacío en Espresso
    • Problema 37071776: espresso-core incorpora los archivos .pom de Guava
    • Problema 37062612: NPE en release()
    • Problema 37063389: al tener Guava y espresso-web como dependencias de androidTest, no se realiza la compilación
    • Problema 37070533: se agregó compatibilidad con NavigationView en la biblioteca de compatibilidad de diseño de Android
  • Ejecutor
    • Se corrigió la capacidad de usar @UiThreadTest en combinación con @Test(timeout = 123).
    • Se corrigieron argumentos de ejecutor -e notClass.
    • Se corrigió -e log para admitir los paquetes de pruebas JUnit3 y JUnit4, además de los runners Parameterized y Enclosed.
    • Problema 37663530: Espera a que finalicen todas las actividades antes y después de cada método de prueba.
    • Problema 37132680: Espresso no espera a que se complete la creación del diálogo antes de realizar la siguiente acción.
    • Problema 37123213: Se ignora @RequiresDevice en ABI x86_64.
    • Problema 37101485: Se ignoran algunos argumentos proporcionados por manifiesto para AndroidJUnitRunner, como el tamaño de la prueba, la anotación y la depuración.
    • Problema 37082857: Falla la ejecución de prueba semiparalela de Espresso en objetos estáticos.
    • Problema 37063396: No se inicializa el contexto con ProviderTestCase2 (causa NullPointerException).

Otros cambios destacados

  • Los objetos binarios ahora se publican a través de Google Maven.
  • Se redujo el tamaño de los archivos JAR espresso-core y espresso-web; las dependencias incorporadas ahora tienen ProGuard aplicado.
  • Todos los archivos .aar ahora incluyen reglas de ProGuard.
  • Se agregaron archivos proguard_library.cfg a los artefactos actualizados.
  • La interfaz de Tapper tiene una nueva versión de sendTap() para implementar.

Contribuciones externas

Espresso 2.2.2, Runner/Rules 0.5 (22 de febrero de 2016, lanzamiento silencioso)

Funciones nuevas

  • espresso
    • Problema 194253: se agregó compatibilidad con NavigationView en la biblioteca de diseño de compatibilidad de Android
    • Comprobaciones adicionales para animaciones y transiciones habilitadas
    • Nueva API de ViewMatcher: withResourceName()

Correcciones de errores

  • espresso
    • Problema 195331: espresso-core incorpora los archivos pom de Guava
    • Se quitó el recurso de conteo inactivo de espresso-contrib
  • rules
    • Problema 187249: NPE en Intents.release()
  • runner
    • Problema 196066: el argumento -e log true en AndroidJUnitRunner no omite la prueba real
    • Espera al depurador en onCreate() del ejecutor
    • Se quitaron todas las anotaciones de prueba compatibles de la plataforma y se colocaron en ATSL.
    • Se quitó el volcado de seguimiento de pila acerca de JSBridge.
    • Se corrigió AndroidAnnotatedBuilder.

Otros cambios destacados

  • ActivityTestRule, UiThreadTestRule, IntentsTestRule y ServiceTestRule están fuera de la versión beta.
  • Se agregó un archivo de configuración de estilo de código para un formato de código uniforme.

Espresso 2.2.1, Runner/Rules 0.4 (15 de septiembre de 2015)

Funciones nuevas

  • rules
    • Se agregó un nuevo constructor IntentsTestRule para que sea totalmente compatible con ActivityTestRule.
  • runner
    • Se agregó la instalación multidex de casos especiales para los niveles de API 15 e inferiores.
    • Se agregaron filtros de exclusión a clases y paquetes:
      • Se ejecutan todas las pruebas, excepto las de una clase particular: adb shell am instrument -w -e notClass com.android.foo.FooTest.
      • Se ejecutan todas las pruebas, excepto una: adb shell am instrument -w -e notClass com.android.foo.FooTest#testFoo.
      • Se ejecutan todas las pruebas, excepto un paquete en particular: adb shell am instrument -w -e notPackage com.android.foo.bar.

Contribuciones externas

  • espresso
    • 157911: se agregó un comparador de vistas para el tipo de entrada en un objeto EditText.
    • 157912: se agregó un comparador de vistas para hacer coincidir el texto del error en un objeto EditText.
    • 150674: se agregó compatibilidad con DrawerActions para paneles laterales con gravedad arbitraria.
    • 150744: las acciones DrawerActions ya no filtran parentListener.
    • 153303: se especificó la gravedad en las verificaciones "is the drawer open or closed".
    • 157910: se agregaron fábricas de acción de apertura y cierre de DrawerLayout.

Correcciones de errores

  • espresso
    • ViewActions.closeSoftKeyboard() ahora garantiza que el teclado en pantalla desaparezca por completo.
    • Se solucionó un problema de sincronización con el método Espresso.pressBack() de Espresso en el nivel de API 21 y en niveles superiores.
    • Se corrigió la sincronización para animaciones de cierre de teclado en el nivel de API 23.
  • rules
    • Se corrigió ServiceTestRule en el nivel de API 23; siempre se debe llamar a startService() con un Intent explícito.
  • runner
    • Se corrigió la compatibilidad con JaCoCo de Gradle.
    • Se corrigió la compatibilidad con fragmentación de prueba dañada.
    • Se corrigió el estado inconsistente en el Runner de prueba después de que termina el tiempo de espera de la prueba de estilo JUnit3.

Otros cambios destacados

  • Se implementaron correcciones de Javadoc y mejoras de los mensajes de error.
  • Se ignoran los métodos suite(), pero no los errores de inicio al usar filtros de métodos.

Espresso 2.2/ATSL 0.3 (9 de junio de 2015)

Funciones nuevas

  • espresso-web 2.2
    • Nueva compatibilidad con WebView
  • espresso-core 2.2
    • Se migró para usar dagger v2
    • Se migró para usar hamcrest v1.3
  • espresso-contribu 2.2
    • Comprobaciones de accesibilidad
    • Compatibilidad con gravedad de DrawerActions
  • rules 0.3
    • Regla DisableOnAndroidDebug
  • runner 0.3
    • Actualización de JUnit v4.10 a JUnit v4.12
    • Se migró para usar Hamcrest v1.3

Correcciones de errores

  • Se corrigió el problema por el que DrawerActions filtraba ParentListener.
  • Ahora se tratan las fallas de suposición como una prueba ignorada en lugar de como una prueba fallida.
  • Se corrigió el problema por el que MonitoringInstrumentation filtraba instancias de actividad en ExecutorService.
  • Se solucionó el problema por el que se bloqueaban las actividades huérfanas en la etapa detenida.
  • Se actualizó Until.scrollFinished() para que muestre resultados verdaderos si no se generaron eventos de desplazamiento. Se ofrece protección contra NPE potenciales en UiObject2#setText().

Espresso 2.1, Test Runner/Rules 0.2 y UIAutomator 2.1.0 (21 de abril de 2015)

Cambios rotundos

  • Se dividió en dos el artefacto del runner de prueba y se cambió el nombre de com.android.support.test:testing-support-lib:0.1 a com.android.support.test:runner:0.2 y com.android.support.test:rules:0.2.

Funciones nuevas

  • espresso-intents: Es una API similar a Mockito que habilita las pruebas herméticas entre actividades, ya que permite que los autores de las pruebas verifiquen y cancelen los intents salientes de stub
    • IntentsTestRule: extiende ActivityTestRule, se inicializa y lanza Espresso-Intents en pruebas de IU funcionales
  • espresso-core
    • ViewActions: se agregó la capacidad de ejecutar aserciones globales antes de ejecutar acciones (esto es útil para otros marcos de trabajo que se basan en Espresso a fin de validar el estado de la jerarquía de vistas mientras se ejecuta el paquete existente de pruebas de Espresso)
    • Sobrecarga de ViewMatchers.withContentDescription() resId
  • rules
    • ActivityTestRule: esta regla proporciona pruebas funcionales de una sola actividad
    • Anotaciones UiThreadRule y UiThreadTest: esta regla permite que se ejecute el método de prueba anotado con UiThreadTest en el subproceso principal de la app (o subproceso de IU)
    • ServiceTestRule: esta regla proporciona pruebas funcionales de un servicio
  • runner
    • ApplicationLifecycleCallback: devolución de llamada para supervisar eventos del ciclo de vida de la aplicación
    • Todos los argumentos Runner ahora también se pueden especificar en el archivo del manifiesto de Android utilizando una etiqueta <meta-data>
  • UIAutomator
    • UiDevice.dumpWindowHierarchy() ahora puede aceptar un objeto File o OutputStream

Correcciones de errores

  • espresso
    • El comparador de cursor ahora muestra false si no se encontró la columna para que Hamcrest pueda pasar al siguiente cursor.
    • Ya no se produce NullPointerException con PreferenceMatchers withTitle.
    • Cancelar el registro del recurso inactivo ya no hace que Espresso piense que tenemos recursos inactivos ocupados.
    • Se actualizó la versión de las anotaciones de compatibilidad utilizadas por Espresso Contrib.
  • runner
    • AndroidJUnit4 ahora omite las pruebas con suposiciones fallidas.
  • UIAutomator
    • Ejecuta controladores para evitar StaleObjectException.

Otros cambios destacados

  • Se agregó un mensaje de error más adecuado para cuando no podemos escribir texto con una string no latina.

UIAutomator 2.0 (12 de marzo de 2015)

UIAutomator ahora se basa en la instrumentación de Android, y puedes crear y ejecutar pruebas con el comando ./gradlew connectedCheck.

Espresso versión 2.0, Test Runner 0.1 (lanzado el 19 de diciembre de 2014)

Cambios rotundos

  • Se trasladó Espresso a un nuevo espacio de nombres, de android.support.test.espresso a android.support.test.espresso.
  • Se cambió el nombre de los artefactos Espresso:
    • espresso-1.1.jar ahora es espresso-core-release-2.0.jar.
    • Se trasladó la interfaz IdlingResource a una biblioteca separada: espresso-idling-resource-release-2.0.jar.
    • CountingIdlingResource ahora reside en espresso-contrib-release-2.0.jar (donde debería haber estado siempre).
  • Se quitó Optional (una dependencia de Guava) de la API pública para admitir el reempaquetado de la dependencia de Guava y evitar la colisión DEX (una fuente importante de problemas de desarrollo). Entre los métodos afectados, se incluyen los siguientes:
    • ViewAssertion.check()
    • HumanReadables.getViewHierarchyErrorMessage()

Funciones nuevas

  • Acciones
    • ViewActions
      • replaceText()
      • openLink()
      • Deslizar el dedo hacia arriba y abajo
    • espresso-contribu
      • RecyclerViewActions: maneja interacciones con RecyclerViews.
      • PickerActions: maneja interacciones con selectores de Date y Time.
  • Comparadores
    • RootMatchers
      • isPlatformPopup()
    • ViewMatchers
      • isJavascriptEnabled()
      • withSpinnerText()
      • withHint()
      • isSelected()
      • hasLinks()
    • LayoutMatchers: comparadores de pruebas de diseño relacionadas con i18n
    • CursorMatchers: una colección de comparadores para objetos Cursor
  • Aserciones
    • PositionAssertions, por ejemplo, isLeftOf() o isAbove(): colección de ViewAssertions para verificar la posición relativa de los elementos en la pantalla
    • LayoutAssertions: aserciones para pruebas de diseño relacionadas con i18n
  • App de prueba: muchas actividades o pruebas de muestra nuevas
  • Otro
    • Espresso.unregisterIdlingResources() y Espresso.getIdlingResources(): proporciona flexibilidad adicional para trabajar con IdlingResources
    • ViewInteraction.withFailureHandler(): permite anular el controlador de fallas de onView()
    • Compatibilidad con onData() para AdapterViews respaldadas por CursorAdapters

Correcciones de errores

  • ViewMatchers.isDisplayed() coincide con vistas que ocupan toda la pantalla, pero de las que ya no se muestra menos del 90%.
  • Realizar una llamada de acción de deslizamiento a DrawerActions.openDrawer() ya no produce una excepción IdlingResourceTimeoutException.

Otros cambios destacados

  • Se pasó de compilar con Maven a Gradle.
  • Se quitaron las dependencias de Espresso (Guava, Dagger, Hamcrest) para evitar las colisiones con DEX.
  • Se realizaron modificaciones para mostrar un mensaje de registro o de cancelación de registro de recursos inactivos que puede ser positivo o negativo.
  • Compatibilidad con Lollipop: se colocó message.recycle() detrás de una interfaz para justificar los cambios relacionados con la versión.
  • Se cambió el nivel del SDK objetivo a 21, lo que afecta principalmente a la app de prueba.

Versión 1.1 (lanzada el 8 de enero de 2014)

Espresso

  • Incluye las acciones ViewActions swipeLeft y swipeRight.
  • Compatibilidad con Multiventana: es una función avanzada que permite elegir la ventana de destino en la que Espresso debe ejecutar la operación.
  • Mejoras de TypeTextAction: permite escribir texto en una vista preenfocada, lo que facilita agregar texto.
  • Incluye varias correcciones de errores.

Biblioteca de Espresso Contrib

  • Esta nueva biblioteca contiene funciones que complementan Espresso, pero no son parte de la biblioteca principal.
  • DrawerActions nuevas para operar en DrawerLayout: depende de la biblioteca de compatibilidad de Android, por lo que la mantenemos fuera de la biblioteca principal de Espresso.

Pruebas de muestra

  • Se reubicaron estas pruebas para incluirlas en el mismo paquete que la app de prueba.
  • Se corrigieron los POM de Maven a fin de quitar los duplicados de Guava, por lo que mvn install ahora debería funcionar.