Pro*_*tor -1 testing tdd unit-testing
TDD。我有相当复杂的编码练习,如果私有方法非常复杂,我是否要测试它们?
所以我的类只公开了一个公共方法,但包含很少的非常复杂的方法,我认为应该测试哪些方法?
有疑问:我是否测试它们?
如果您正在执行 TDD,那么在物理上不可能达到您拥有“非常复杂”的私有方法的地步。TDD 的第三阶段是“重构”。当你实现特性时,你会不断地把东西拆开、分解、提取方法、类等,所有这些都是为了避免以神秘的方式完成 100000 件事情的上帝对象。
在处理遗留代码中的这些类时(这是一个可以写整本书的主题(人们都有)),通常认为进行最少的重构以使代码完全可测试是一种很好的做法(无需诉诸反射和类似的丑陋黑客)。然后你用测试覆盖代码,直到你相当有信心可以开始对其进行更改而不会违反合同。
在这一点上,您可以开始重构、分解、提取和疯狂,直到您拥有更易于管理的东西。
底线是:不,不要测试私有方法。它导致难以理解的脆弱测试,它只会巩固糟糕的设计,而不是帮助您获得更好的设计(TDD 的明确目标之一)。
即使您认为“现在快速获得覆盖范围更好,我可以稍后修复它”,不,这不值得。这是一笔巨大的技术债务,您将在未来 10 年内无法偿还。这太麻烦了。
| 归档时间: |
|
| 查看次数: |
142 次 |
| 最近记录: |