运行Roboletric测试时,Retrofit不会回调

时间:2015-09-18 08:01:24

标签: android callback mockito retrofit wiremock

测试时(在JVM下)不要从Retrofit获得回调。

使用Robolectric(3.0),Wiremock(1.57:独立)和Mockito(1.10.19)测试应用程序。

该应用程序使用Retrofit(1.9)连接后端API。 App具有通过Retrofit调用API的服务,并且活动绑定到服务。

测试运行的调试和日志显示活动调用服务,服务调用改进,并且改装返回Wiremock的结果(如预期的那样)。

I / com.levld.client.rest.RestAdapterFactory:< --- END HTTP(6208-byte body) W / com.levld.client.rest.RetrofitErrorHandler:内部服务器错误

内部服务器错误用于触发Retrofit错误处理程序(由Wiremock设置的状态代码)。

调试错误处理程序时,当Retrofit尝试回调服务时,处理将停止。调试器中的变量显示回调设置为调用服务。

非常感谢您的帮助和建议!

1 个答案:

答案 0 :(得分:0)

通过为Retrofit设置同步执行程序来解决。这会触发api调用的同步执行,但仍会将结果作为回调返回给调用服务。服务层中的异步功能代码保持不变!

同步执行程序代码:https://stackoverflow.com/a/27341424/4413233

P.S。 Robolectric实际上用于单元测试