你知道如何使用 Robolectric 为 AsyncTasks 实现单元测试吗?任何指针将不胜感激。
问问题
11585 次
2 回答
18
调用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());
}
于 2015-01-21T12:09:13.623 回答
7
使用 Robolectric 2.4,现在是ShadowApplication
:
ShadowApplication.runBackgroundTasks();
于 2015-03-11T00:02:58.107 回答