62

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

4

4 回答 4

37

有很多好处:

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

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

于 2008-08-07T02:33:10.437 回答
3

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

于 2008-08-07T02:30:19.133 回答
2

好处

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

入门

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

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

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

于 2008-08-07T02:34:05.660 回答
0

在我看来,最棒的一点是它清楚地允许您查看您的代码是否按预期执行。这可能看起来很明显,但正如我过去发现的那样,很容易误入你最初的目标:p

于 2008-08-07T02:32:38.380 回答