2013-02-23 11 views

Antwort

15

Rufen Sie execute(...) auf die Aufgabe, warten Sie dann auf den Ergebnisaufruf Robolectric.runBackgroundTasks()/Robolectric.flushBackgroundThreadScheduler() dann können Sie bestätigen.

@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

Thank you! Das ist die Lösung ... – StefMa

+0

@bianca ist diese Antwort akzeptabel? – weston

7

Mit Robolectric 2.4 ist dies nun in ShadowApplication:

ShadowApplication.runBackgroundTasks();