验证使用robolectric 3运行异步任务

时间:2015-09-03 12:37:55

标签: android unit-testing robolectric

我有一个方法可以在后台线程上启动几个异步任务:

public void fetchSome() {
    new SomeTask1().execute();
    new SomeTask2().execute();
    new SomeTask3().execute();
}

如何使用Robolectric 3.0测试这三项任务是否已执行。

1 个答案:

答案 0 :(得分:0)

在我警告你AsyncTask不是执行后台操作的好方法之前。看看在互联网上谈论与AsyncTask有什么关系。

至于我,你试图测试太多东西。我会分开它。

  1. 测试您的代码是否正在启动异步任务:

    • 编写一个将为您实例化异步任务的Factory类
    • 模拟工厂在测试和返回模拟任务
    • 检查执行任务是否已发生
  2. 测试您的任务是否正常工作:

    • 为每个异步任务类编写测试
    • 模拟依赖关系并检查任务是否正确地与外部世界交互
  3. 测试您的任务是否使用结果更新UI:

    • 介绍听众
    • 模拟它们并传递给异步任务
    • 检查同步任务是否在最终自己的生命周期内调用它们
    • 使UI实现侦听器合同
    • 调用UI测试侦听器方法
    • 检查结果是否正确更新
  4. 希望它有所帮助!