你知道如何使用Robolectric为AsyncTasks实现unit testing吗? 任何指针将不胜感激。
调用任务的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();