在JVM下测试时,Retrofit没有回调。
测试应用程序与robolelectric (3.0), Wiremock(1.57:独立)和Mockito(1.10.19)。
应用程序使用Retrofit(1.9)连接后端API。应用程序有通过Retrofit调用API的服务,活动被绑定到这些服务。
测试运行的调试和日志显示活动调用服务,服务调用retrofit,而retrofit返回Wiremock的结果(如预期的那样)。
I/com.levld.client.rest。RestAdapterFactory: <——END HTTP(6208字节正文)W/com.levld.client.rest。RetrofitErrorHandler: Internal server error
内部服务器错误是为了触发Retrofit errorhandler(由Wiremock设置的状态码)。
在调试errorhandler时,当Retrofit试图回调服务时,处理将停止。调试器中的变量显示回调被设置为调用服务。
非常感谢您的帮助和建议!通过为Retrofit设置同步执行器解决。这将触发api调用的同步执行,但仍然将结果作为回调返回给调用服务。服务层中的异步功能代码没有改变!
同步执行程序代码:https://stackoverflow.com/a/27341424/4413233.
注。robolelectric实际上是用于单元测试的