我想知道应该如何通过 NUnit 测试此类功能。
Public void HighlyComplexCalculationOnAListOfHairyObjects()
{
// calls 19 private methods totalling ~1000 lines code + comments + whitespace
}
通过阅读,我发现 NUnit 并不是为了测试私有方法而设计的,这是出于关于单元测试应该是什么的哲学原因;但试图创建一组完全执行计算中涉及的所有功能的测试数据几乎是不可能的。同时,计算被分解为许多相当离散的较小方法。然而,它们并不是彼此独立完成的逻辑上有意义的事情,因此它们都被设置为私有的。
你把两件事混为一谈了。接口(可能暴露很少)和这个特定的实现类,可能暴露更多。
定义尽可能窄的接口。
使用可测试(非私有)方法和属性定义实现类。如果班级有“额外”的东西也没关系。
所有应用程序都应该使用该接口,因此,不能以类型安全的方式访问该类的公开功能。
如果“某人”绕过接口并直接使用类怎么办?他们是反社会者——你可以放心地忽略他们。不要为他们提供电话支持,因为他们违反了使用接口而不是实现的基本规则。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)