如何对从具有大量依赖关系的基类派生的类进行单元测试?

前端之家收集整理的这篇文章主要介绍了如何对从具有大量依赖关系的基类派生的类进行单元测试?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在我继承的一些 Java代码中对一个类进行单元测试.

问题是它来自一个类,它是公司应用程序的一部分.在构造时,基类会执行各种“聪明”的东西,初始化与运行时所需的各种服务的连接.

但是对于单元测试目的,我不需要任何这些.我只需要创建一个派生类的实例,然后我就可以锻炼它.如果任何测试特别需要层次结构的一部分,我可以嘲笑它们.

那么我该如何打破这种依赖呢?

所以你有一个基类和一个扩展类.看看你是否可以重构扩展类以不再扩展基类,而是使用它.所以你第一次调用parent :: fooBar()时,你现在调用this.baseInstance.fooBar().这样,您可以注入另一个baseInstance用于测试目的.

如果您确实需要扩展基类以覆盖某些内容,请将该功能提取到第三个类,并使扩展类成为代理.扩展类除了在第三个类上调用方法之外别无其他.例如.

protected fooBar() {
    return this.realImplementation.fooBar();
}

这样,您可以测试实际的实现,而无需实例化基类.

原文链接:https://www.f2er.com/javaschema/281284.html

猜你在找的设计模式相关文章