代码之家  ›  专栏  ›  技术社区  ›  Mike Minutillo

为什么我应该练习测试驱动开发,我应该如何开始?

  •  50
  • Mike Minutillo  · 技术社区  · 16 年前

    很多人在开始编写代码之前都会谈论为代码编写测试。这种实践通常被称为测试驱动开发或简称为TDD。这样写软件有什么好处?我该如何开始这个练习?

    4 回复  |  直到 7 年前
        1
  •  31
  •   Daan    13 年前

    有很多好处:

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

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

        2
  •  3
  •   Community Mr_and_Mrs_D    7 年前

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

        3
  •  2
  •   dragonmantank    16 年前

    效益

    1. 你知道如何划分你的代码
    2. 您可以确切地知道您希望代码做什么
    3. 你知道它应该怎么做,如果重构破坏了任何东西
    4. 使您习惯于确保您的代码总是知道它应该做什么

    入门

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

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

    如果您是从零开始的,请确保找到一个好的易于使用的测试套件。我喜欢PHP,所以phpunit或simpletest可以很好地工作。几乎所有流行的语言都有一些XUnit测试套件可用于帮助构建和自动化测试。

        4
  •  0
  •   Ed.    16 年前

    在我看来,最重要的一点是它清楚地允许您查看您的代码是否做了它应该做的事情。这看起来很明显,但是很容易偏离你最初的目标,正如我在过去发现的那样:p