2013-02-23 107 views

回答

15

拨打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()); 
} 
+0

谢谢!这是解决方案... – StefMa 2015-02-24 17:07:37

+0

@bianca可以接受这个答案吗? – weston 2017-03-01 20:16:27

7

随着Robolectric 2.4,这是现在ShadowApplication

ShadowApplication.runBackgroundTasks();