【问题标题】:Why should I practice Test Driven Development and how should I start?为什么我应该练习测试驱动开发,我应该如何开始?
【发布时间】:2010-09-05 11:32:33
【问题描述】:

很多人在开始编写代码之前都会谈论为他们的代码编写测试。这种做法通常被称为测试驱动开发或简称 TDD。以这种方式编写软件对我有什么好处?我该如何开始这种做法?

【问题讨论】:

标签: testing tdd


【解决方案1】:

好处部分有recently been covered,至于从哪里开始......在一个没有太多未知数的小型企业系统上,风险很低。如果您还不了解测试框架(如 NUnit),请先学习它。否则从编写你的第一个测试开始:)

【讨论】:

    【解决方案2】:

    在我看来,最棒的一点是它可以清楚地让您看到您的代码是否按照预期执行。这似乎很明显,但正如我过去发现的那样,很容易误入你的原始目标:p

    【讨论】:

      【解决方案3】:

      有很多好处:

      • 您会立即获得有关您的代码是否正常工作的反馈,这样您就可以更快地发现错误
      • 通过看到测试从红色变为绿色,您就知道您有一个有效的回归测试和有效的代码
      • 您可以自信地重构现有代码,这意味着您可以清理代码而不必担心它可能会破坏什么
      • 最后,您将拥有一套可在自动构建期间运行的回归测试,让您更加确信自己的代码库是可靠的

      最好的开始方式就是开始。关于测试驱动开发,有一个很棒的book by Kent Beck。只需从新代码开始,不要担心旧代码……每当您觉得需要重构某些代码时,为现有功能编写测试,然后重构它并确保测试保持绿色。另外,请阅读this great article

      【讨论】:

      【解决方案4】:

      好处

      1. 你知道如何划分你的代码
      2. 您确切地知道您希望您的代码做什么
      3. 你知道它应该如何运作,并且在未来,如果重构会破坏任何东西
      4. 让您养成确保代码始终知道应该做什么的习惯

      开始

      就去做吧。为你想做的事情编写一个测试用例,然后编写应该通过测试的代码。如果你通过了测试,很好,你可以继续编写代码总是失败的案例(例如,2+2 不应该等于 5)。

      一旦您的所有测试都通过了,就可以编写您的实际业务逻辑来执行您想做的任何事情。

      如果您是从头开始,请确保您找到了一个易于使用的良好测试套件。我喜欢 PHP,所以 PHPUnit 或 SimpleTest 运行良好。几乎所有流行的语言都有一些 xUnit 测试套件可用于帮助构建和自动化测试。

      【讨论】:

      • 顺便说一下,“划分代码”会引导您“免费”获得一个非常好的架构。当您将代码分成几部分进行测试时,您最终会得到一个更好的架构。如果您有一点软件架构师的经验,它是完全免费的。
      猜你喜欢
      • 1970-01-01
      • 2013-04-23
      • 2012-06-15
      • 2010-09-20
      • 2016-08-12
      • 1970-01-01
      • 1970-01-01
      • 2017-04-29
      • 2018-07-07
      相关资源
      最近更新 更多