我一直关注此blog entry,其中展示了如何使用Mockito和Retrofit模拟请求。问题是我在Robospice上使用它们,它并不需要在服务接口上提供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);
有没有办法实现这个目标?谢谢!
答案 0 :(得分:5)
模拟服务接口,然后编写脚本以返回所需的值。
doReturn(new User()).when(service).foo(anyString());
您稍后可以验证是否已调用此方法。
verify(service).foo(anyString())