我们如何拥有单元测试理念?

时间:2010-02-13 14:51:25

标签: unit-testing tdd

您好stackoverflow系列。

毫无疑问,单元测试在软件开发中非常重要。但我认为首先是实践和哲学。大多数开发人员都希望使用这种理念,但他们无法在项目中执行它,因为它们不习惯测试驱动开发。现在我的问题是那些遵循这一理念的人。根据您的经验,良好测试的特性是什么?以及如何让它成为您生活的一部分。

好日子。

4 个答案:

答案 0 :(得分:8)

way of Testivus带来了对单元测试的启发。

  • 如果您编写代码,请编写测试。
  • 不要卡在单元测试教条上。
  • 拥抱单位测试业力。
  • 将代码和测试视为一个。
  • 测试比单位更重要。
  • 测试的最佳时间是代码是新鲜的。
  • 测试不会浪费掉。
  • 今天的不完美测试总有一天比完美测试好。
  • 丑陋的测试比没有测试好。
  • 有时,测试证明了手段的合理性。
  • 只有傻瓜才能使用工具。
  • 好的测试失败。

答案 1 :(得分:2)

良好测试的一些特征:

  • 其执行不依赖于上下文(或状态) - 即它是独立运行还是与其他测试一起运行;
  • 它只测试一个功能单元;
  • 它涵盖了所测试功能单元的所有可能情况。

答案 2 :(得分:1)

讨论不能更好地表达。

http://discuss.joelonsoftware.com/default.asp?joel.3.732806.3

http://discuss.joelonsoftware.com/default.asp?joel.3.39296.27

根据良好测试的想法,它是一个可以捕获缺陷:)但是TDD不仅仅是缺陷捕获,更多的是关于开发和连续性。

答案 3 :(得分:1)

我一直认为TDD的规则和哲学最好由Robert C. Martin在本文中总结:

The Three Rules of TDD

在其中,他用以下三条规则总结了TDD:

  
      
  • 除非要制作,否则不允许您编写任何制作代码   失败的单元测试通过。
  •   
  • 您不能再编写单元测试了   失败;和编译失败   故障。
  •   
  • 您不能再编写任何生产代码   足以让一个人失败   单元测试。
  •   

有一条隐含的第四条规则:

  • 在测试通过时,您应该重构代码。

虽然有更多详细的例子,文章和书籍,但我认为这些规则很好地总结了TDD。