你知道如何使用Robolectric实现AsyncTasks的单元测试吗? 任何指针都将不胜感激。
你知道如何使用Robolectric实现AsyncTasks的单元测试吗? 任何指针都将不胜感激。
在任务上调用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());
}
在 Robolectric 2.4 中,这现在位于 ShadowApplication
中:
ShadowApplication.runBackgroundTasks();