我什么时候应该选择测试驱动开发?

时间:2010-06-09 19:44:20

标签: tdd

我的问题与标题相同。我还没有完成测试驱动开发,我已经进行了单元测试,我一般都知道测试,但我听说跟随TDD是有利的。所以我应该每次选择它还是有一些先决条件......我只需要知道一些基本或重要的要求,当我选择TDD时。对不起,如果这个问题太琐碎了。

4 个答案:

答案 0 :(得分:5)

无论何时编写项目,我都会说。我的意思是你希望生成将供人们使用的代码。这基本上是除了您正在学习和发现新技术的研究之外的所有代码。

即使你认为这个项目只是一个小项目,但事情往往会失控。当你发现自己不得不重构一大堆代码时,你会为这些测试感到高兴。

另请注意,tdd不只是测试。这是一种开发方法,鼓励您创建干净,坚固的设计。

当你开始tdd的一切。一旦你有了更多的经验,那么也许你可以退出并确定何时不进行tdd。

答案 1 :(得分:3)

恕我直言,如果您对TDD不满意,尝试将其应用于需要交互/使用遗留代码的项目中,这比从头开始在项目中应用它要复杂得多。事实上,关于此问题有一个完整的book

HTH

答案 2 :(得分:2)

我的建议是尽可能经常使用单元测试。

警告:根据我的经验,TDD在使用您已经拥有一些经验的技术时效果最佳。如果您不确切地知道所需结果的样子,那么编写测试断言通常很难(例如,如果您从未在整个生活中编写过操作方法,请尝试编写ASP.NET MVC操作方法的测试)。在这些情况下,您可能最好在实现代码后编写单元测试。

答案 3 :(得分:1)

如果我正在开发没有用户界面的东西,我这些天总是使用TDD。毕竟,你必须测试软件。您可以执行额外的工作并执行TDD,也可以执行额外的工作并将用户客户端整合在一起进行测试。前者测试更完整,更可重复。

另一方面,针对用户界面代码进行TDD并没有真正为我带来太多价值。出于各种商业原因,我开始只限于使用Visual Studio进行工作,而使用VS进行“录制”测试是一个巨大的时间接收器,尤其是当您更改UI时必须重新录制它们时。我为UI背后的业务逻辑做TDD,但不是UI本身。