2013-02-23 51 views
20

के साथ एसिंक कार्यों का परीक्षण करना क्या आप जानते हैं कि Robolectric का उपयोग करके AsyncTasks के लिए यूनिट परीक्षण को कैसे कार्यान्वित किया जाए? किसी भी पॉइंटर्स की सराहना की जाएगी।robolectric

उत्तर

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

+0

@bianca क्या यह उत्तर स्वीकार्य है? – weston

7
Robolectric 2.4 के साथ

इस ShadowApplication में है:

ShadowApplication.runBackgroundTasks();