Prueba de tareas asíncronas con robolectric

¿Sabe cómo implementar la prueba de unidad para AsyncTasks usando Robolectric? Se apreciarán todos los punteros.

Llamar execute(...) en la tarea, luego esperar la llamada de resultado Robolectric.runBackgroundTasks() / Robolectric.flushBackgroundThreadScheduler() entonces usted puede afirmar.

 @Test public void test() { //create task MyAsyncTask asyncTask = new MyAsyncTask(); //start task asyncTask.execute(...); //wait for task code // Robolectric.runBackgroundTasks(); (pre 3.0) Robolectric.flushBackgroundThreadScheduler(); //from 3.0 //can run asserts on result now assert...(asyncTask.get()); } 

Con Robolectric 2.4 esto ahora está en ShadowApplication :

ShadowApplication.runBackgroundTasks();

  • Robolectric getResources () lanza RuntimeException (Android)
  • Robolectric With Gradle:. \ Res \ values ​​no es un directorio
  • Android studio 1.1.0 no puede configurar Robolectric
  • Cómo probar que una intención ha sido difundida
  • Robolectric 3.0: Mocking System.currentTimeMillis ()
  • Robolectric - screen_action_bar.xml line # -1 (lo siento, aún no implementado): Error al inflar la clase <unknown>
  • Obtención del campo `ViewDataBinding` de actividad dentro de la prueba de unidad 'Robolectric` después de ser asignado
  • Robolectric: Prueba de que una cancelación en el diálogo no inició nueva actividad
  • Cómo activar el registro roboeléctrico
  • Robolectric + Maven
  • ¿Cómo funcionan exactamente los objetos Shadow personalizados en Robolectric?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.