【问题标题】:Testing AsyncTaskLoaders with Robolectric使用 Robolectric 测试 AsyncTaskLoader
【发布时间】:2013-08-19 07:10:43
【问题描述】:

有没有人在 Robolectric 中为 AsyncTaskLoaders 编写过单元测试?我尝试了这个example for AsyncTask 的修改版本,但它没有表现出相同的行为。特别是 onLoadFinished 永远不会被调用。是否有任何可用的示例来测试使用 Robolectric 的装载机?

【问题讨论】:

  • 您找到解决方案了吗?

标签: android unit-testing robolectric asynctaskloader


【解决方案1】:

我刚刚发布了一种方法,我让它在这个堆栈票中工作: Testing a CursorLoader with Robolectric & Mockito

它涉及编写几个额外的影子类。如果需要,我可以在此处粘贴修复程序,但我不确定重复答案的约定是什么。

【讨论】:

    【解决方案2】:

    不要使用加载器。它们不容易测试,而且它们与使用它们的片段和活动紧密耦合。相反,将 RxJava Observables 用于您的异步数据流。您可以解耦调度并在单元测试中同步运行它们。它更干净,更直接。

    【讨论】:

    • 你有什么例子可以分享吗?我正在专门寻找“解耦调度程序”部分。订阅时,您的代码中是否有任何不同的操作,例如注入通用调度程序?或者是否有漂亮的方法只是告诉 Rxjava 在指定线程上执行所有内容?
    • 我将 SchedulerFactory 传递给需要它的类,在生产中我将异步调度程序(io、newThread 等)传回工厂方法中的各自调用,而在单元测试中所有调用返回所有调用的当前线程。您可以将调度程序传递给可观察对象。
    猜你喜欢
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多