我最近一直在评估 JetBrains 的 DotCover,它让我想到了一个有趣的问题。
遵循 TDD 时:
- 我将针对我想要的理想界面编写一个测试。
- 红色的
- 创建最简单的实现以通过测试。
- 绿色的
- 运行 DotCover,显示 100%。
- 然后我将删除重复/重构。
如果在重构过程中我将一些功能移动到它自己的类中(比如为了遵守 DRY 或 SRP),然后重新运行 DotCover,那么覆盖率将下降,因为我不再直接测试新类.
这对我来说似乎有点奇怪,因为我完全遵循 TDD 的原则。如果我修改或注释掉代码中的任何行,测试将中断,但报告为未覆盖。
我错过了什么吗?