【问题标题】:How to apply Test Driven Development to a new project?如何将测试驱动开发应用于新项目?
【发布时间】:2011-02-06 01:22:31
【问题描述】:

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

IMO,应该编写数据模型和接口。然后应该实现几个特性来验证数据模型和接口是否“成熟”。 (又名对任何一个的更改都将是最小的)。然后我会写单元测试。经过这一步,我认为你可以遵循 TDD。

这是正确的方法吗?

顺便说一句,TDD 等一些新技术似乎没有说明或记录新项目应该做什么。

【问题讨论】:

  • 一个新项目是最容易应用TDD的时间。
  • 我会说这种说法非常主观,具体取决于您对 TDD 的体验 :)
  • 盯着空白屏幕不知道如何进行并不是学习 TDD 最容易的时间。观看下面的截屏演示。
  • 我认为你应该把你所有的意见放在一边,按照 TDD 来阅读本书,然后决定你喜欢什么,不喜欢什么。最好自己尝试和体验。

标签: language-agnostic tdd


【解决方案1】:

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

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

也许如果您提供一个应用程序示例,我们可以帮助您找到前几个失败的测试。

【讨论】:

  • 当您没有要设置和检查的对象时,您如何为某事编写单元测试,我仍然有点犹豫。这是否意味着您编写一个骨架类,然后为该骨架编写单元测试?
  • @daub:不,你在骨架类之前编写测试。只有在测试需要时才创建类的片段。
  • 我认为这就是为什么他们称之为测试driven 开发。您知道,测试驱使您编写代码。
【解决方案2】:

TDD 并不构成一个多天的编写测试然后编写代码以使这些测试通过的过程。 TDD 是关于以并行方式将测试工作与开发工作结合起来。

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

【讨论】:

  • 我认为这是一个关键点。这是一个高度迭代和交互的过程。这都是关于短反馈循环。
【解决方案3】:

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

观看此视频以观看现场演示 http://katas.softwarecraftsmanship.org/?p=80

【讨论】:

  • 虽然截屏很有趣,但他使用的语言让我有点失望。
  • @daub815 他用多种语言截屏了相同的项目。
【解决方案4】:

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

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

【讨论】:

    猜你喜欢
    • 2013-07-21
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    • 2011-09-09
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多