前端之家收集整理的这篇文章主要介绍了
如何对从具有大量依赖关系的基类派生的类进行单元测试?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在我继承的一些
Java代码中对一个类进行单元测试.
问题是它来自一个类,它是公司应用程序的一部分.在构造时,基类会执行各种“聪明”的东西,初始化与运行时所需的各种服务的连接.
但是对于单元测试目的,我不需要任何这些.我只需要创建一个派生类的实例,然后我就可以锻炼它.如果任何测试特别需要层次结构的一部分,我可以嘲笑它们.
那么我该如何打破这种依赖呢?
所以你有一个基类和一个扩展类.看看你是否可以重构扩展类以不再扩展基类,而是使用它.所以你第一次
调用parent :: fooBar()时,你现在
调用this.baseInstance.fooBar().这样,您可以注入另一个baseInstance用于测试目的.
如果您确实需要扩展基类以覆盖某些内容,请将该功能提取到第三个类,并使扩展类成为代理.扩展类除了在第三个类上调用方法之外别无其他.例如.
protected fooBar() {
return this.realImplementation.fooBar();
}
这样,您可以测试实际的实现,而无需实例化基类.
原文链接:https://www.f2er.com/javaschema/281284.html