举例说明BDD和规范有什么区别?

  • 本文关键字:区别 BDD 举例说明 bdd
  • 更新时间 :
  • 英文 :


我知道BDD,也读过Gojko Adzic的《Specification by Example》这本好书;据我所知,他们几乎是一样的,有很多共同点;但我无法理解他们的主要区别。我的意思是我们可以互换使用它们吗?

总体思路

BDD是以"这个功能做这个和那个"的形式描述测试的格式。如果需求是以相同的格式编写的,那么我们最终会让整个团队使用BDD。因为这些需求可以用于测试。

Specs的示例是…好吧,我举一个具体的例子来说明需求。

测试格式用于测试的bdd可以有不同的形式:

  • Given When Then
  • li>小黄瓜(一种更严格的G/W/T方言,由黄瓜框架家族使用)
  • 描述它(茉莉,摩卡等)
  • 或者自定义的东西。可能是相同的旧JUnit与测试命名为"adminHasAccessToProfileOfOthers"而不是旧的样式"testAdminCanAccessProfileOfOthers">

需求对于需求的bdd,这里有一个例子:

如果用户有足够的钱,他们可以购买该产品

这里是spec -by-example:

如果用户有10美元,产品是9美元,用户可以购买该产品

看,在第一个例子中,我们使用抽象的概念,而在后一个例子中,我们使用特定的值。

通常当人们谈论BDD/spec -by-example时,他们会使用Given-When-Then来编写需求。但是作为一个抽象的概念,这并不是强制性的——它只是大多数测试框架所支持的。

总的来说,BDD对于测试来说是一个非常好的想法,特别是当它不是给定-何时-然后:)但是当涉及到需求时-在我的经验中,我还没有看到任何项目真正从中受益。

至于其他常见的误解:BDD以及它如何与TDD无关。

最新更新