测试时(在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尝试回调服务时,处理将停止。调试器中的变量显示回调设置为调用服务。
非常感谢您的帮助和建议!
答案 0 :(得分:0)
通过为Retrofit设置同步执行程序来解决。这会触发api调用的同步执行,但仍会将结果作为回调返回给调用服务。服务层中的异步功能代码保持不变!
同步执行程序代码:https://stackoverflow.com/a/27341424/4413233。
P.S。 Robolectric实际上用于单元测试