在测试驱动开发中重构时添加测试

时间:2016-03-31 08:18:42

标签: unit-testing refactoring tdd

假设我正在重构一些已编写单元测试的类。让我们假设测试覆盖率是合理的,因为它涵盖了大多数用例。

重构时我改变了一些实现。移动一些变量,添加/删除一些变量,将事物抽象成一些函数等。类的api和它的功能虽然保持不变。

在重构这些类时,我应该添加测试吗?或者我应该为每一次重构添加一个新的测试?这是我在构建代码而不是重构时通常会做的事情。

PS:如果这真的很模糊,请道歉。

2 个答案:

答案 0 :(得分:2)

通常,单元测试是工作/设计/用例规范,重构System Under Test / Class Under Test(例如:类)应该如何工作。因此,通过陈述这一点,我真的会像:

  1. 根据您的规范编写测试
  2. 重构代码以遵守规范
  3. 检查测试的断言结果
  4. 在实践中,我得出的结论是,您不需要为了高代码覆盖率而测试代码的每一行,但请确保始终测试代码的部分位置行为逻辑谎言。

答案 1 :(得分:1)

如果您的更改已通过当前测试验证,则无需添加新更改。检查您的代码覆盖率。如果新代码中存在漏洞,则意味着您进行了未经验证的功能更改。

如果将新提取的课程移动到您没有原始测试的其他项目,则新测试可能很有价值。