本文介绍了与robolectric测试异步任务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你知道如何实现单元测试使用Robolectric AsyncTasks?任何指针将AP preciated。

Do you know how to implement unit testing for AsyncTasks using Robolectric ? Any pointers will be appreciated.

推荐答案

呼叫执行(...)的任务,然后等待结果电话<$c$c>Robolectric.runBackgroundTasks()/<$c$c>Robolectric.flushBackgroundThreadScheduler()那么你就可以断言。

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());
}

这篇关于与robolectric测试异步任务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 14:57