我即将开始研究利用代码覆盖率进行开发,并想知道它通常是如何与测试驱动开发结合的。
代码覆盖率是事后考虑的吗?你的流程大致是这样的:
- 编写要实现功能的测试
- 运行测试,确保它们失败
- 实现功能
- 运行测试,确保它们通过
- 为功能编写更多的测试,直到达到100%(或接近)的代码覆盖率
还是在实现了许多功能片段之后最终运行代码覆盖率,并返回并努力实现100%的覆盖率?
我能想到的第三种选择是在实施功能之前努力实现100%的覆盖率。
这些选项中哪个最常见,有什么好处呢?
我即将开始研究利用代码覆盖率进行开发,并想知道它通常是如何与测试驱动开发结合的。
代码覆盖率是事后考虑的吗?你的流程大致是这样的:
还是在实现了许多功能片段之后最终运行代码覆盖率,并返回并努力实现100%的覆盖率?
我能想到的第三种选择是在实施功能之前努力实现100%的覆盖率。
这些选项中哪个最常见,有什么好处呢?
在达到100%代码覆盖率之前,您不需要编写测试。如果你一直遵循TDD的话,那么没有任何代码是在没有经过测试要求的情况下编写的,因此你总是应该接近于100%的覆盖率。
相反地,您需要编写测试直到所有测试通过,直到所有所需测试都已编写完毕。这意味着所有所需的代码都已被编写,因为您只有在测试要求时才会编写代码。
记住,你可能会有一个测试实际上使用了被巧合覆盖的代码。你需要小心处理这个问题,特别是在开始TDD时。哦,我在这个函数中,我知道我需要添加这个小小的薄荷糖,那么为什么不再加一个呢?在你意识到之前,你就有了一堆未经测试的代码。
编写测试:失败 编写代码:通过 重构:通过
返回顶部