我正在尝试为类单元okhttp3编写单元测试,而我却在模拟okhttp3.Response类.
它被宣布为final,大多数模拟框架都不能模拟最终类.
我宁愿不使用Powermock也只是为了这个.
看一下代码,我可以看到有可能创建一个Response类的真实实例并在测试中使用它,但与仅模拟一个方法(在我的情况下)相比,它会更多代码并且可读性更低.
okhttp3.Response类的“final”修饰符背后的任何具体原因或在以后的版本中删除它的任何计划?
解决方法:
响应是一个值类,因此永远不应该被模拟.您可以使用Response.Builder创建实例,其中包含您希望Response具有的任何数据.
没有计划删除最终修饰符.