我继承了一个没有接口(interface)或抽象类的项目,即只有具体类,我想引入单元测试。类包含很多函数,其中包含业务逻辑和数据逻辑;打破了 SOLID 的每条规则(http://en.wikipedia.org/wiki/SOLID_%28object-oriented_design%29)。
我有一个想法。我正在考虑为每个设计不佳的类创建接口(interface),公开所有功能。那么至少我可以模拟类。
我对单元测试相对较新(我有一个项目的经验,该项目在正确的位置使用接口(interface)开发得非常好)。这样做是个好主意吗?即为所有具体类创建接口(interface)(公开所有函数和子例程),仅用于单元测试?
我花了一些时间研究这个问题,但还没有找到答案。
最佳答案
如果您的项目根本没有测试,那么在添加任何单元测试之前,我宁愿创建更高级别的测试(即验收、功能和/或集成测试)。
当您进行这些测试时,您知道系统的行为符合预期,并且具有一定程度的“外部”质量(这意味着程序的输入和输出是预期的)。
一旦您的高级测试开始工作,您可以尝试将单元测试添加到已存在的类中。
我敢打赌,如果您希望能够对某些现有类进行单元测试,以便可以将高级测试用作,您会发现自己需要重构一些现有类安全网会告诉您是否损坏了任何东西。
关于vb.net - 单元测试具体类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18450534/