Do you know how to implement unit testing for AsyncTasks using Robolectric ? Any pointers will be appreciated.
Call execute(...)
on the task, then to wait for the result call Robolectric.runBackgroundTasks()
/Robolectric.flushBackgroundThreadScheduler()
then you can assert.
@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()); }
With Robolectric 2.4 this is now in ShadowApplication
:
ShadowApplication.runBackgroundTasks();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With