我应该为在TDD的重构阶段创建的类编写新的单元测试吗?

时间:2015-04-16 15:00:54

标签: unit-testing

我已经创建了我的单元测试和我的课程,我尽可能快地完成所有工作,并且我有一个绿色条和许多测试。

现在我想重构并使其变得更好。我想要做的部分重构是创建一个SUT将依赖的新类,因为我意识到我在同一个类中有不同的抽象级别。现在现有的测试将完全覆盖新类,但我不确定是否将测试移动到测试新类的新TestClass,在两者中复制它们(尽管它们会略有不同)或者不要因为原始类而烦恼是外部API,新类是私有成员变量。

2 个答案:

答案 0 :(得分:2)

您只是遇到了单元测试的一大优势:refactoring protection,这意味着如果您有一套完整的单元测试,涵盖了类方法的all functionalities and corner cases,那么您可以安全地重构只要你不修改那个班级的public interface,你就可以以任何你想要的方式上课。

您计划添加的新helper课程本身并不需要测试,因为它将通过原始课程进行间接测试。但是,如果您计划将helper类导出到其他类,那么您可以考虑为helper添加测试,以减少调试其他类的失败测试的开销(如您所知) helper可以。)

答案 1 :(得分:0)

不测试私有方法是一种被接受(但有些争议)的最佳实践。

您希望您的测试套件确保您的公共API的功能正确并且记录在案 - 而不是实际的实现。

因此,只要您的重构不添加任何其他功能,更改公共方法中的参数等,那么您就不需要在重构阶段添加新测试。