【发布时间】:2009-01-06 19:09:58
【问题描述】:
我看到很多 TDD 实践者遵循这个周期:
1) 像目标一样编写测试 对象和 API 已经存在。
2) 编译解决方案并查看 休息。
3) 编写足够的代码来实现 编译。
4) 运行测试,看看是否失败。
5) 编写足够的代码来实现 经过。
6) 运行测试并看到它通过
7) 重构
第 1 步和第 2 步的优势是什么?对于像 Visual Studio 这样的 IDE,这样做真的很烦人,因为智能感知会到处乱跳,试图猜测不存在的方法和属性。
我通常从第 3 步开始,让我的所有方法都抛出 NotImplementedException,这对我来说似乎很好,但也许我遗漏了一些东西。
编辑澄清:这不是为什么我应该在测试通过之前看到测试失败的问题;这将在第 3 步之后介绍,而且完全有道理。我的问题是,为什么在此之前人们会调用 API 中不存在的单元测试方法(因此 VS 会显示红色曲线,或将整个方法名称涂成红色等)并尝试编译。对我来说,VS 告诉我该方法不存在这一事实已经足够了。
【问题讨论】:
-
您说只使用“第 3 步开始”,但您在第 1 步中编写测试。如果从第 3 步开始,您什么时候编写测试?请澄清。
-
当我说“编写足够的代码”时,这意味着在具有 NotImplementedException 的类中编写方法,然后编写测试。它编译并测试失败,但出现上述异常。
标签: visual-studio-2008 unit-testing tdd