如何使用Mockito在Robospice和Retrofit上测试API?

Die*_*sta 4 android mockito android-testing robospice retrofit

我一直在关注这篇博客文章,其中展示了如何使用Mockito和Retrofit模拟请求.问题是我在Robospice上使用它们,它不需要Callback在服务接口上提供as参数(因为它将是一个同步调用):

@GET("/foo/bar")
User foo(@Query("bar") String baz);
Run Code Online (Sandbox Code Playgroud)

所以我不能以这种方式拦截我测试的回调:

Mockito.verify(mockApi).repositories(Mockito.anyString(), cb.capture());
User user = new User();
cb.getValue().success(user, null);
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个目标?谢谢!

Jak*_*ton 5

模拟服务接口,然后编写脚本以返回所需的值.

doReturn(new User()).when(service).foo(anyString());
Run Code Online (Sandbox Code Playgroud)

您可以稍后验证是否已调用此方法.

verify(service).foo(anyString())
Run Code Online (Sandbox Code Playgroud)