Diálogo de prueba en ActivityUnitTestCase de Android

Estoy tratando de probar una actividad en android que mostrará un ProgressDialog y todo funciona bien en la aplicación, sin embargo, cuando intento utilizar ActivityUnitTestCase y la prueba hace que la actividad para mostrar el diálogo falla con este error:

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application at android.view.ViewRoot.setView(ViewRoot.java:429) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:178) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) at android.view.Window$LocalWindowManager.addView(Window.java:392) 

Estaba mirando el problema y parece que el método onCreateDialog de mi actividad se bloquea cuando tratamos de crear desde la prueba, que supongo que es otro contexto, lo entiendo, sin embargo, me pregunto si alguno de ustedes ha tenido éxito al intentar Tal escenario.

Este es el código de mi onCreateDialog.

  public Dialog onCreateDialog(final int id) { Dialog dialog; switch (id) { case PROGRESS_BAR: loadingDialog = new ProgressDialog(this); loadingDialog.setMessage("searching for product..."); loadingDialog.setIndeterminate(true); dialog = loadingDialog; break; case INEXISTING_PRODUCT: AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Product not found"); builder.setPositiveButton("OK", null); dialog = builder.create(); break; case UNAVAILABLE_SERVICE: AlertDialog.Builder unavailableBuilder = new AlertDialog.Builder(this); unavailableBuilder.setMessage("Service Unavailable"); unavailableBuilder.setPositiveButton("OK", null); dialog = unavailableBuilder.create(); break; default: dialog = super.onCreateDialog(id); } return dialog; } 

¿Algunas ideas?

Creo que encuentro una manera de hacerlo.

El problema era que necesitaba extender de ActivityInstrumentationTestCase2 y también hacer esto para evitar problemas con el hilo de GUI.

  final Button uButton = (Button) activity.findViewById(R.id.btnSearchProduct); activity.runOnUiThread(new Runnable() { public void run() { uButton.performClick(); } }); 

Mi única pregunta es cómo comprobar los resultados, ya que tengo que comprobar en qué actividad aterricé y es extras?

  • Obtención de contexto en AndroidTestCase o InstrumentationTestCase en la función Prueba de unidad de Android Studio
  • qué prueba de unidad, en aplicaciones Android
  • Prueba de clases sin actividad en Android
  • Prueba de unidad en la función de extensión de Kotlin en las clases de SDK de Android
  • Pruebas unitarias Llamadas JNI
  • ¿Cómo burlar el método de Bundle en Android Unit-Test?
  • El uso de InstrumentationTestRunner personalizado en Eclipse provoca un error
  • Android inmediatamente creado Los elementos de par son nulos
  • Cómo probar una actividad usando google-api-client
  • Excepción que ejecuta pruebas de JUnit con AndroidStudio: java.lang.NoClassDefFoundError: android / os / Parcelable
  • Pruebas de unidades de Android que requieren contexto
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.