共识似乎是在做 TDD 时不要测试私有方法。
我一直在遇到同样的情况。我有一个私有方法(例如,它将所有选项都关闭)。它改变了很多状态,并被一些公共方法调用。无论调用哪个公共方法(所有选项都设置为关闭),私有方法对状态所做的更改都将保持不变。
在不添加许多有效地做同样事情的测试的情况下,测试这个私有方法的功能的最佳方法是什么?
顺便说一句,我正在使用 QUnit 来测试 Javascript 对象。
这是我的课的一个过于简化的版本。
http://jsfiddle.net/twistedinferno/UMgAx/
编辑
我在这里真正想问的不是“我应该还是不应该测试私有方法”,因为这已经得到了回答,而答案是否定的。我想知道如何最好地测试每个公共方法,记住由于使用了我的私有方法,许多断言将是相同的。许多公共方法调用相同的私有方法。是否可以有很多重复的断言来测试当许多公共方法中的每一个调用我的私有方法时发生的状态变化?