Los tests UI en Android nunca han acabado de cuajar del todo para ser ágiles.. Conllevan diversas problemáticas como los elevados tiempos de ejecución o la sincronización entre las distintas llamadas a la acción. Buscando el santo grial podemos probar un recién estrenado framework propuesto por Google a la comunidad. Se trata de Espresso, de cuál tuvimos las primeras noticias en la pasada GTAC (Google Test Automation Conference).
Disponible como versión preliminar podemos comenzar a plantear complejos tests a nivel de interfaz de usuario que hasta ahora requerían un esfuerzo extra y nada trivial. Espresso dispone de una simple API, fácil de aprender y adaptar a nuestra necesidades.
Elimina la complejidad de la gestión de distintos hilos de ejecución. Sólo debemos escribir el test de forma concisa tal cual son las verdaderas acciones Espresso se encarga de sincronizar las distintas acciones y ejecutarse cuando cada evento esté disponible siguiendo su ciclo de ejecución).
Algunos ejemplos de lo que podemos hacer con Espresso en nuestra aplicaciones Android para testear:
onView(withId(R.id.my_view)) // withId(R.id.my_view) is a ViewMatcher .perform(click()) // click() is a ViewAction .check(matches(isDisplayed())); // matches(isDisplayed()) is a ViewAssertion
Testear los elementos visibles del action bar:
public void testClickActionBarItem() { // We make sure the contextual action bar is hidden. onView(withId(R.id.hide_contextual_action_bar)) .perform(click()); // Click on the icon - we can find it by the r.Id. onView(withId(R.id.action_save)) .perform(click()); // Verify that we have really clicked on the icon by checking the TextView content. onView(withId(R.id.text_action_bar_result)) .check(matches(withText("Save"))); }
Como dato a tener en cuenta, es otro de los proyecto Open Source que surgen de necesidades reales del equipo de desarrollo de Google. Ha sido usado para más de 30 aplicaciones en Google como Maps, Google+ o Drive.
Ahora toca el turno de que los desarrolladores envíen feedback y colaboraciones al proyecto para poder construir un framework los bastante potente para que no sea un trauma testear la interfaz de usuario.
Más información | Espresso en Google Code, slides presentación de Espresso
Ver todos los comentarios en https://www.genbeta.com
VER 0 Comentario