java – 为什么okhttp3.Response类是final

我正在尝试为类单元okhttp3编写单元测试,而我却在模拟okhttp3.Response类.

它被宣布为final,大多数模拟框架都不能模拟最终类.
我宁愿不使用Powermock也只是为了这个.

看一下代码,我可以看到有可能创建一个Response类的真实实例并在测试中使用它,但与仅模拟一个方法(在我的情况下)相比,它会更多代码并且可读性更低.

okhttp3.Response类的“final”修饰符背后的任何具体原因或在以后的版本中删除它的任何计划?

解决方法:

响应是一个值类,因此永远不应该被模拟.您可以使用Response.Builder创建实例,其中包含您希望Response具有的任何数据.

没有计划删除最终修饰符.

上一篇:android – 改造okhttp获取随机eofexception


下一篇:android – 如何让Robospice处理来自Retrofit和OKHttp的200响应以外的任何错误