Prueba de unidad de Android con ActivityInstrumentationTestCase2, getActivity () se bloquea cuando el caso de prueba anterior provoca que se inicie otra actividad

Estoy tratando de ejecutar varios casos de prueba para una actividad de inicio de sesión utilizando ActivityInstrumentationTestCase2. El primer caso de prueba prueba el inicio de sesión con éxito, lo que hace que la Actividad inicie la siguiente Actividad llamando a startActivity (intención de intención). Ahora hay otra actividad en la parte superior de la actividad que estoy tratando de probar. El primer caso de prueba pasa, y se inicia el segundo caso de prueba. Sin embargo, siempre se bloquea en getActivity () cuando está siendo llamado por el segundo caso de prueba.

Si entro en el código de mi actividad de inicio de sesión y comento la parte que llama a startActivity (intención de intención), ambos casos de prueba se ejecutarán correctamente.

Ya he probado algunas cosas. Utilicé Intent.FLAG_ACTIVITY_CLEAR_TOP para borrar la pila de actividades. En este caso, la actividad superior se cierra, y la actividad de inicio de sesión se revela, pero se queda atascada en getActivity () cuando se inicia el segundo caso de prueba.

También intenté sendKeys (KeyEvent.KEYCODE_BACK), pero eso no tiene efectos.

¿Qué puedo hacer para superar esto? ¡Gracias!

One Solution collect form web for “Prueba de unidad de Android con ActivityInstrumentationTestCase2, getActivity () se bloquea cuando el caso de prueba anterior provoca que se inicie otra actividad”

getInstrumentation().addMonitor(NextActivity.class.getName(), null, true); 

Hicimos el truco. Observe que el último parámetro es un indicador que indica si se bloquea o no la actividad desde el inicio. Ponerlo en verdadero solucionó el problema.

Enlace a doc

  • Dependencias de Gradle: Cómo averiguar qué está causando esta duplicación
  • Error en la prueba JUnit del servicio
  • Pruebas de ejecución automática antes de la compilación de aplicaciones en Android Studio
  • FragmentActivity no se puede probar a través de ActivityInstrumentationTestCase2
  • Prueba de unidad con Junit: prueba de recursos de red / bluetooth
  • JUnit prueba para la aplicación de Android con fragmentos
  • Rendering problemas y no puede resolver R en Android Studio 2.0, ¿por qué se produce y cómo resolver estos?
  • Android Espresso: el filtrado de prueba no es compatible con la versión dada de JUnit. Actualice la versión de JUnit por lo menos a 4.6
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.