27

Robolectric を使用して AsyncTasks の単体テストを実装する方法を知っていますか? 任意のポインタをいただければ幸いです。

4

2 に答える 2

18

タスクを呼び出し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());
}
于 2015-01-21T12:09:13.623 に答える