我已经创建了我的单元测试和我的课程,我尽可能快地完成所有工作,并且我有一个绿色条和许多测试。
现在我想重构并使其变得更好。我想要做的部分重构是创建一个SUT将依赖的新类,因为我意识到我在同一个类中有不同的抽象级别。现在现有的测试将完全覆盖新类,但我不确定是否将测试移动到测试新类的新TestClass,在两者中复制它们(尽管它们会略有不同)或者不要因为原始类而烦恼是外部API,新类是私有成员变量。
答案 0 :(得分:2)
您只是遇到了单元测试的一大优势:refactoring protection
,这意味着如果您有一套完整的单元测试,涵盖了类方法的all functionalities and corner cases
,那么您可以安全地重构只要你不修改那个班级的public interface
,你就可以以任何你想要的方式上课。
您计划添加的新helper
课程本身并不需要测试,因为它将通过原始课程进行间接测试。但是,如果您计划将helper
类导出到其他类,那么您可以考虑为helper
添加测试,以减少调试其他类的失败测试的开销(如您所知) helper
可以。)
答案 1 :(得分:0)
不测试私有方法是一种被接受(但有些争议)的最佳实践。
您希望您的测试套件确保您的公共API的功能正确并且记录在案 - 而不是实际的实现。
因此,只要您的重构不添加任何其他功能,更改公共方法中的参数等,那么您就不需要在重构阶段添加新测试。