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.
- Cómo ensayar un servicio de Android que depende de una conexión de red
- Prueba de unidad de presentador con RxJava CompositeSubscription
- Robolectric Unit Test falla con las actualizaciones de Android Studio 2.3
- PowerMock en el proyecto Android
- ¿Cómo obtener una nueva instancia de mi clase de aplicación para cada prueba de unidad?
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?
- Utilice @Ignore en AndroidTestCase
- ¿Cómo puedo obtener Mockito trabajando en androidTest
- Prueba de la unidad de Android con AsyncTask y la solución de actualizaciones de interfaz de usuario
- Cómo corregir la excepción de permiso INJECT_EVENT al enviar toques a una prueba de ActivityInstrumentationTestCase2
- Robolectric y Android Studio 1.1.0 y pruebas de biblioteca
- Crear proyecto de prueba de android en intellij idea 13 community edition
- No se pueden construir pruebas con Gradle (decard-gradle)
- Cómo generar un informe de cobertura de código de casos de prueba de instrumentación en Android Studio
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?
- Android: El modo de timbre cambiado a silencioso no detiene la vibración del teléfono
- Descarga rápidamente mapas de bits de la memoria