Testing async tasks with robolectric
android, robolectric, unit-testing
Solution
Call `execute(...)` on the task, then to wait for the result call `Robolectric.runBackgroundTasks()`/`Robolectric.flushBackgroundThreadScheduler()` then you can assert.
@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());
}
Problem
Do you know how to implement unit testing for AsyncTasks using Robolectric ? Any pointers will be appreciated.