如何将测试驱动开发应用于新项目?

时间:2011-02-06 01:22:31

标签: language-agnostic tdd

我正在开始一个新项目,我想使用测试驱动开发,但是当你没有数据模型或接口时,我无法理解如何编写测试。

IMO,应该编写数据模型和接口。然后应该实现一些功能来验证数据模型和接口是否“成熟”。 (对两者的改变都是最小的)。然后我会写单元测试。在那一步之后,我认为你可以关注TDD。

这是正确的做法吗?

另一方面,像TDD这样的新技术似乎没有考虑或记录如何为新项目做些什么。

4 个答案:

答案 0 :(得分:4)

就像他们说的那样,“从失败的单元测试开始”。

  • 除非需要数据模型才能修复失败的单元测试,否则不需要数据模型。
  • 在需要之前不需要接口(以修复失败的单元测试)

也许如果你举一个应用程序的例子,我们可以帮你找到最初几个失败的测试。

答案 1 :(得分:3)

TDD不构成编写测试的多日过程,然后编写代码以使这些测试通过。 TDD旨在将测试工作以并行方式与开发工作相结合。

编写一些测试来解决潜在的类,然后编写类将是并行工作的一个例子。编写测试来解决由多个类组成的模块然后编写类以使这些测试通过并不是一个平行的工作,应该避免,因为在整个开发过程中重构是不可避免的。

答案 2 :(得分:2)

您可以大致了解所需的类,然后编写测试,观察测试失败,使其通过并重复。您可能会意识到需要移动方法或创建新类,但这是该过程的一部分。

观看此视频,了解实时演示 http://katas.softwarecraftsmanship.org/?p=80

答案 3 :(得分:1)

重点是,当你写一个测试时,它会失败。您不需要数据模型或接口来编写失败的测试。

http://jamesshore.com/Blog/Red-Green-Refactor.html