【发布时间】:2011-03-16 05:06:30
【问题描述】:
我刚刚开始了一个新项目,现在 ASP.NET MVC 以极其可组合的方式设计,我认为现在可能是开始进行单元测试的好时机。我的大部分代码都是新鲜的,我在编写实际生产代码之前先编写测试。
不过,令我感到沮丧的是,我花更多的时间来修复测试中的错误,而不是修复生产测试中的任何错误。
我的典型工作流程最终是这样的:
- 写一个存根
- 编写测试
- 确保测试失败
- 填写存根
- 测试仍然失败,所以花点时间检查一下预期和实际输出。
- 错误出现在测试中,而不是实际代码中。修复测试。
如果您考虑一下,这在某种程度上是意料之中的:单元测试涉及手动生成输出,因此容易出错;用严格的语言编写并具有良好编码实践的代码具有非常自动指定的行为。
当然,有时我的生产代码是测试失败的真正原因,但这种情况确实比较少见。
当然,没有理由完全消除单元测试;有时我根本不相信自己的代码。另一方面,我开始觉得这并不是那么有价值——尤其是测试优先的哲学。
还有其他人有这种感觉吗?
【问题讨论】:
标签: unit-testing tdd