android - 如何使用 Mockito 沿 Robospice 和 Retrofit 测试 API?

标签 android mockito android-testing robospice retrofit

我一直在关注这个 blog entry它展示了如何使用 Mockito 和 Retrofit 模拟请求。问题是我在 Robospice 中同时使用了两者,它不需要在服务接口(interface)上提供 Callback 作为参数(因为它将是 synchronous call ):

@GET("/foo/bar")
User foo(@Query("bar") String baz);

所以我无法以这种方式拦截我的测试回调:

Mockito.verify(mockApi).repositories(Mockito.anyString(), cb.capture());
User user = new User();
cb.getValue().success(user, null);

有什么办法可以实现吗?谢谢!

最佳答案

模拟服务接口(interface),然后编写脚本以返回您想要的值。

doReturn(new User()).when(service).foo(anyString());

您稍后可以验证是否调用了此方法。

verify(service).foo(anyString())

关于android - 如何使用 Mockito 沿 Robospice 和 Retrofit 测试 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22328549/

相关文章:

java - Action 中的备用图标和标题

java - 在 Java 中为 Android 开发时 "shared library"究竟意味着什么? (`*.jar` 或 `*.so`)

android - ndk-build gstreamer android 教程 : cannot find -lrt

kotlin - 相当于 doReturn(x).when(y)... 在 mockk 中?

java - 我怎样才能 "intercept"一个方法调用进行测试?

java - 如何使用 JUnit 或 Mockito 测试使用 Random() 的方法(不带参数和返回值)

java - 使用模拟相同静态类的 Power Mock 运行 2 个 Roboelectic 测试类时出现 ClassCastException 异常

android - gcloud CLI : How to run instrumentation tests with clearPackageData argument?

android - 由于 Mockito.doThrow,测试永远不会执行

android - 在 Android : "can' t load this type of class file"上运行 Clojure