我不确定"先测试"是如何工作的,我想听听有关何时以及为何采用这种方法的争论.
我听说在编写单行实现之前,经常建议编写测试和模拟.但是,我不禁想到它并不适合所有情况.例如,假设我正在制作原型,我不确定一切是如何运作的.所以我开始找到我认为需要的每个步骤的示例并将它们放入我的代码中.最后,我有一个我的理论的证据,并没有花那么长时间.这基本上是"我的考验".这不是一个单元测试,但它是一个测试(很可能是一个控制台应用程序).
这几乎就是我的工作方式.我想想我想做什么并尝试去做.如果它工作,那么我最终回去编写单元测试,以便我可以陷阱回归.这与你"应该做的"不同吗?
总体规则是:先做最风险的项目.
首先,测试用例首先是认为编码中最危险的部分是对正在创建的对象的接口和行为的误解和误解.
对于许多项目来说,这可能是真的,在这些情况下TDD非常合适.
但是,在许多项目中并非如此,在这些情况下应用TDD是一个糟糕的选择.
如果您的最高风险是可用性,请停止使用单元测试并进行一些UI原型设计.
如果您的最高风险是性能,请先做一些性能原型,不要担心接口.
这个清单还在继续.
首先执行风险项目有许多优点:
在许多资源被浪费之前,不可避免地注定的项目会早日死亡.
有问题但可以挽救的项目可以在项目管理能够做得很好的时候尽早获得项目管理.
当组织的业务方面失败风险较低时,他们会重视项目; 它不太可能在不必要的时候提前取消.