我有一些关于 Android Volley 的请求。由于 Listeners 正在做一些事情,比如将响应 JSON 转换为对象,我想测试它们以确保它们做的是正确的事情。问题是,我不太了解如何进行单元测试。我确实设置了带有 JUnit 的 Robolectric,但我们将不胜感激。我将如何设置我的测试以便我可以测试传递到请求中的 Listener 对象?
最佳答案
看一下CacheDispatcher就够了:
Response<?> response = request.parseNetworkResponse(
new NetworkResponse(entry.data, entry.responseHeaders));
这是创建请求响应的地方,使用抽象的 parseNetworkResponse 方法(如果您已经实现了它),然后:
mDelivery.postResponse(request, response);
如果您深入研究代码,它实际上会激发听众。其余的东西是线程相关的。我建议实现采用静态 NetworkResponse 并调用 mDelivery 的 postResponse 的简单测试例程。
这实际上也意味着,您可能不会这样做 - 测试调用了哪个方法(Response.success 或 Response.error)就足够了 - 这是您的第一个单元测试。其次,只测试您的听众。
关于Android-volley 如何在 Listener 中通过单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18607692/