假设我正在重构一些已编写单元测试的类。让我们假设测试覆盖率是合理的,因为它涵盖了大多数用例。
重构时我改变了一些实现。移动一些变量,添加/删除一些变量,将事物抽象成一些函数等。类的api和它的功能虽然保持不变。
在重构这些类时,我应该添加测试吗?或者我应该为每一次重构添加一个新的测试?这是我在构建代码而不是重构时通常会做的事情。
PS:如果这真的很模糊,请道歉。答案 0 :(得分:2)
通常,单元测试是工作/设计/用例规范,重构System Under Test / Class Under Test(例如:类)应该如何工作。因此,通过陈述这一点,我真的会像:
在实践中,我得出的结论是,您不需要为了高代码覆盖率而测试代码的每一行,但请确保始终测试代码的部分位置行为或逻辑谎言。
答案 1 :(得分:1)
如果您的更改已通过当前测试验证,则无需添加新更改。检查您的代码覆盖率。如果新代码中存在漏洞,则意味着您进行了未经验证的功能更改。
如果将新提取的课程移动到您没有原始测试的其他项目,则新测试可能很有价值。