Reduzca el Espresso

Esto es sobre Espresso. Estoy ejecutando con éxito la prueba de integración en un simulador. Creo que algunas pruebas están fallando porque está funcionando demasiado rápido. ¿Hay alguna forma de disminuir la velocidad de ejecución / reproducción?

Es imposible que una prueba no cause velocidad. Espresso puede sincronizar todas las operaciones de prueba con la aplicación bajo prueba. De forma predeterminada, Espresso espera que los eventos de interfaz de usuario en la cola de mensajes actual procesen y que las AsyncTasks predeterminadas se completen antes de pasar a la siguiente operación de prueba. Sin embargo, si esto no es suficiente para su aplicación puede decir Espresso cuando estar inactivo y cuando no. Para hacerlo, tiene que:

  • Implementar la interfaz IdlingResource .
  • Registre uno o más de sus IdlingResource (s) con Espresso llamando a Espresso.registerIdlingResource en la configuración de prueba.

¡Si usted necesita más ayuda me pregunta !!

Haha … en realidad espresso funciona sólo así. El problema al que se enfrenta es que los eventos de interfaz de usuario no se pueden completar (por ejemplo, hacer clic en un elemento de lista antes de que la lista se cargue desde una llamada de red). En este caso, donde se están cargando los recursos de otro hilo, puede realizar Thread.sleep (millis) o más eficientemente el método loopMainThreadForAtleast (millis) de UiController para esperar a que something to load (el evento se complete).

Cuando graba una prueba de Espresso en Android Studio, automáticamente agregará declaraciones de sueño a las pruebas cuando haya interacción de vista para manejar el retraso. Este es el enfoque que se genera junto con los comentarios:

 // Added a sleep statement to match the app's execution delay. // The recommended way to handle such scenarios is to use Espresso idling resources: // https://google.github.io/android-testing-support-library/docs/espresso/idling-resource/index.html try { Thread.sleep(700); } catch (InterruptedException e) { e.printStackTrace(); } 

Enlace a los documentos

También tuve este problema. Solucioné eliminando la animación de actividades de mi dispositivo desde las opciones de desarrollador.

Si su problema sigue ahí, puede utilizar el sleep en su prueba para reducir la velocidad.

 SystemClock.sleep(1000); 

Introduzca aquí la descripción de la imagen

  • Ejecutar la prueba de instrumentación usando Espresso: Clase ref en la clase pre-verificada resuelto a la implementación inesperada
  • Prueba onActivityResult ()
  • La cobertura del código de Android falla debido a CNF Exception for org.junit.Test
  • Comprobación de que una actividad devuelve el resultado esperado
  • Iniciar una segunda actividad dentro de un TestCase (que no es la actividad bajo prueba)
  • ¿Cómo puedo enviar parámetros a una función de prueba, que se inició con el comando adb shell am Instrumentation
  • Gradle pruebas para Android estudio (instrumentación)
  • Prueba de Android: La ejecución de instrumentación falló debido a 'java.lang.ClassNotFoundException'
  • ¿Es posible averiguar si una aplicación de Android se ejecuta como parte de una prueba de instrumentación
  • Pruebas de instrumentación de Android con múltiples emuladores
  • Android - Junit - Proyecto probado utiliza Jar externo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.