Google Espresso o Robotium

Tengo que utilizar la herramienta de prueba automatizada UI y estoy confundido entre el uso de Robotium vs Google Espresso.

¿Cuáles son las principales diferencias entre los dos? ¿Hay características que existen en uno pero no en el otro?

2 Solutions collect form web for “Google Espresso o Robotium”

Divulgación completa: Soy uno de los autores de Espresso.

Tanto Espresso como Robotium son marcos basados ​​en instrumentación, lo que significa que utilizan Instrumentación Android para inspeccionar e interactuar con Actividades bajo prueba.

En Google, empezamos usando Robotium porque era más conveniente que instrumentación de stock (sombrero a los desarrolladores de Robotium por hacerlo así). Sin embargo, no satisfacía nuestra necesidad de un marco que hiciera las pruebas confiables escritas fáciles para los reveladores.

Los mayores avances en Espresso sobre Robotium:

  1. Sincronización. De forma predeterminada, la lógica de prueba de instrumentación se ejecuta en un hilo diferente (instrumentación) que las operaciones de UI (procesadas en el hilo de UI). Sin la sincronización de las operaciones de prueba con las actualizaciones de la interfaz de usuario, las pruebas serán propensas a flakiness – es decir, fallará al azar debido a los problemas de tiempo. La mayoría de los autores de las pruebas ignoran este hecho, algunos añaden mecanismos de retraso / reposo y aún menos implementan un código de seguridad de hilo más sofisticado. Ninguno de estos son ideales. Espresso se encarga de la seguridad de los hilos mediante la sincronización perfecta de las acciones de prueba y las aseveraciones con la interfaz de usuario de la aplicación bajo prueba. Robotium intenta abordar esto con mecanismos de reposo / reintento, que no sólo son poco fiables, sino que también hacen que las pruebas se ejecuten más lentamente de lo necesario.

  2. API. Espresso tiene un API pequeño, bien definido y predecible, que está abierto a la personalización. Dígale al marco cómo localizar un elemento de interfaz de usuario utilizando los emparejadores de Hamcrest estándar y luego indíquelo para realizar una acción o para comprobar una aserción en el elemento de destino. Puede contrastar esto con la API de Robotium, donde se espera que el autor de la prueba elija entre 30 métodos de clic. Además, Robotium expone métodos peligrosos como getCurrentActivity (¿qué significa actual de todos modos?) Y getView, que le permiten operar en objetos fuera del hilo principal (vea el punto anterior).

  3. Borrar la información de fallos. Espresso se esfuerza por proporcionar información de depuración enriquecida cuando ocurre un error. Además, puede personalizar la manera en que los errores son manejados por Espresso con su propio manejador de errores. No lo he probado en un tiempo, pero las versiones anteriores de Robotium sufrían de manejo de fallas inconsistente (por ejemplo, el método clickOnView se tragaría SecurityExceptions).

Contrariamente a una respuesta anterior, Espresso es compatible con todas las versiones API con un número significativo de usuarios (ver: http://developer.android.com/about/dashboards/index.html ). Funciona en algunas de las versiones anteriores, pero probarlas sería un desperdicio de recursos. Hablando de pruebas … Espresso es probado en cada cambio por una suite de pruebas completa (con más de 95% de cobertura), así como la mayoría de las aplicaciones Android desarrolladas por Google.

Espresso es mucho más rápido que Robotium, pero sólo funciona en algunas versiones de SDK.

Así que si desea una prueba que funcione en todos los dispositivos, vaya para Roboitum. Si no, vaya para el espresso, y no olvide que usted será un probador beta por todavía algún tiempo.

  • Cómo probar dos actividades con Robotium
  • Robotium - Escoja una cuenta en AccoutPicker con solo
  • Dos robotium caso de prueba, pero el segundo colgar no responde (en JUnit View)
  • Utilice tanto InstrumentationTestRunner como AndroidJUnitRunner con Robotium y Espresso
  • Robotium con Mockito o Easy Mock
  • Android Robotium - ¿Cómo administrar el orden de ejecución de los testcases?
  • Android y Robotium - Prueba la actividad que espera un extra?
  • Atajo de teclado para Ejecutar como -> Android JUnit Test en Eclipse
  • qué prueba de unidad, en aplicaciones Android
  • Ejemplos de Robotium
  • Cómo probar automáticamente onResume el comportamiento llamando onDestroy usando Robotium?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.