Вы знаете, как реализовать модульное тестирование для AsyncTasks с помощью Robolectric? Любые указатели будут оценены.
Тестирование асинхронных задач с помощью robolectric
Ответ 1
Вызвать execute(...)
в задаче, затем дождаться ответного результата Robolectric.runBackgroundTasks()
/Robolectric.flushBackgroundThreadScheduler()
, после чего вы можете утверждать.
@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());
}
Ответ 2
С Robolectric 2.4 это теперь находится в ShadowApplication
:
ShadowApplication.runBackgroundTasks();