如何对从具有大量依赖关系的基类派生的类进行单元测试?
发布时间:2020-12-13 20:42:04 所属栏目:百科 来源:网络整理
导读:我试图在我继承的一些 Java代码中对一个类进行单元测试. 问题是它来自一个类,它是公司应用程序的一部分.在构造时,基类会执行各种“聪明”的东西,初始化与运行时所需的各种服务的连接. 但是对于单元测试目的,我不需要任何这些.我只需要创建一个派生类的实例,
我试图在我继承的一些
Java代码中对一个类进行单元测试.
问题是它来自一个类,它是公司应用程序的一部分.在构造时,基类会执行各种“聪明”的东西,初始化与运行时所需的各种服务的连接. 但是对于单元测试目的,我不需要任何这些.我只需要创建一个派生类的实例,然后我就可以锻炼它.如果任何测试特别需要层次结构的一部分,我可以嘲笑它们. 那么我该如何打破这种依赖呢?
所以你有一个基类和一个扩展类.看看你是否可以重构扩展类以不再扩展基类,而是使用它.所以你第一次调用parent :: fooBar()时,你现在调用this.baseInstance.fooBar().这样,您可以注入另一个baseInstance用于测试目的.
如果您确实需要扩展基类以覆盖某些内容,请将该功能提取到第三个类,并使扩展类成为代理.扩展类除了在第三个类上调用方法之外别无其他.例如. protected fooBar() { return this.realImplementation.fooBar(); } 这样,您可以测试实际的实现,而无需实例化基类. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- postgresql v9.2升级到9.3步骤
- 在OSX El Capitan上构建和链接共享Tensorflow库,
- 正则表达式 – 从Matlab到R:使用正则表达式将命
- iphone – 无法在iOS中创建提醒日历
- ruby – 在线程内部引发同步错误
- c# – Task.Delay()和新任务之间的区别(()=> Thr
- Cocos2d-x 3.0 Android修改APK名、更改图标、修改
- 关于tinyxml2解析xml跑错, PC运行正常, Androi
- ruby-on-rails – 如何在Ruby on Rails中下载CSV
- 从epoll构建muduo-13 Reactor + ThreadPool 成型
热点阅读