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

  • ¿Es posible probar una actividad abstracta con Robolectric
  • VerifyError en las herramientas de compilación del proyecto de prueba android v17
  • Android Espresso testing 'No se puede resolver el símbolo' InstrumentationRegistry ''
  • Unidad de prueba SparseArray utilizando JUnit (utilizando JVM)
  • JNI: no se puede encontrar la biblioteca en java.library.path al ejecutar JUnit
  • Cómo ejecutar grupos de pruebas de unidad con gradle en Android
  • Ignorar las pruebas de la unidad de Android dependiendo del nivel de SDK
  • Service.startForeground () lanza NullPointerException cuando se ejecuta con ServiceTestCase
  • VerifyError con PowerMock en Android
  • ¿Hay alguna forma de punto de ruptura dentro de las clases probadas?
  • Cómo generar informes de prueba de JUnit en android para jenkins
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.