¿Cómo puedo comprobar en Robotium que la aplicación ha terminado?

Estoy tratando de crear un método de prueba utilizando Robotium para comprobar si la aplicación de Android termina después de hacer clic en un botón (en el código hay una llamada a finish() cuando el usuario hace tapping).

 public void test_onclickExit_finish() { String buttonText = resources.getString(R.string.exit); Button exitButton = solo.getButton(buttonText, true); solo.clickOnView(exitButton); // check here that the app has finished // wait for the activity to finish? assertTrue(solo.getCurrentActivity() == null); } 

Pero esta prueba está fallando. No sé cómo puedo indicar la prueba para esperar hasta que la actividad haya terminado. También no estoy seguro de si el uso de getCurrentActivity() sería una buena manera de comprobar si la aplicación ha terminado.

¿Cómo puedo verificar que la aplicación / actividad ha terminado?

Gracias.

Aplicación e instrumentación se ejecutan en el mismo proceso, si usted termina su aplicación, no se puede hacer nada más en la instrumentación. Fracasó, porque la instrumentación también fue asesinada, y trataste de hacer algo más. No hay manera de comprobar lo que está tratando de hacer con robotium.

Si es tu actividad principal, usa esto:

 assertTrue(solo.getCurrentActivity().isFinishing()); 

Esta pregunta es vieja, pero quizás mi solución puede ayudar a alguien.

He encontrado una manera de esperar / detectar si una actividad fue terminada cuando se utiliza Robotium.

  • Crear una condición para detectar cuando se desactiva la vista de la raíz de la actividad de la ventana: (Estoy usando un método auxiliar en mi ejemplo)

     public static Condition activityWillClose(final Activity activity) { return new Condition() { boolean _detached = false; { // constructor View rootView = activity.getWindow().getDecorView().findViewById(android.R.id.content); rootView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() { @Override public void onViewAttachedToWindow(View view) { } @Override public void onViewDetachedFromWindow(View view) { _detached = true; } }); } @Override public boolean isSatisfied() { return _detached; } }; } 
  • espere la condición en su prueba:

     solo.clickOnView(solo.getView(R.id.exitButton)); Assert.assertTrue("should finish activity", solo.waitForCondition(activityWillClose(solo.getCurrentActivity()), 2000) ); 
  • Cómo detener una aplicación de Android desde la consola
  • Soft teclado no está presente, no se puede ocultar el teclado - Appium android
  • Android en las pruebas de suscripción de aplicaciones
  • ProviderTestCase2.getProvider () es nulo
  • Prueba de un ContentProvider personalizado en Android
  • Carpeta de activos en Android Studio Unit Test
  • Prueba de Android fuera del espacio de almacenamiento
  • Java y la metodología de prueba de Android
  • Cómo generar html informe con gradle 1.12?
  • Prueba de GPS en Android
  • ApplicationTestCase obsoleto en el nivel 24 de API
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.