首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TDD和BDD之间的主要区别是什么?

TDD和BDD之间的主要区别是什么?
EN

Stack Overflow用户
提问于 2008-08-05 15:58:08
回答 12查看 43.8K关注 0票数 133

近几年来,测试驱动开发在.NET社区中风行一时。最近,我在ALT.NET社区听到了一些关于BDD的抱怨。那是什么?它与TDD有什么不同?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2008-08-05 16:36:54

我认为BDD更多的是关于规范,而不是测试。它链接到领域驱动设计(你不喜欢这些*DD缩写吗?)。

它与编写用户故事的特定方式联系在一起,包括高级测试。由Tom ten Thij提供的示例

代码语言:javascript
复制
Story: User logging in
  As a user
  I want to login with my details
  So that I can get access to the site

Scenario: User uses wrong password

  Given a username 'jdoe'
  And a password 'letmein'

  When the user logs in with username and password

  Then the login form should be shown again

(在他的文章中,Tom继续用Ruby直接执行这个测试规范。)

BDD的教皇是Dan North。您可以在他的Introducing BDD文章中找到一个很好的介绍。

您可以在此video中找到BDD和TDD的比较。也谈Jeremy D. Miller对“测试驱动程序设计正确”的看法

2013年3月25日更新

上面的视频已经丢失了一段时间了。这是BDD vs TDD (explained)的Llewellyn Falco最近的一篇文章。我发现他的解释既清晰又切中要害。

票数 105
EN

Stack Overflow用户

发布于 2008-09-08 18:36:07

对我来说,BDD和TDD的主要区别在于焦点和措辞。语言对于传达你的意图是很重要的。

TDD将重点放在测试上。由于在“旧瀑布世界”中,测试是在实现之后进行的,因此这种心态会导致错误的理解和行为。

BDD将重点放在行为和规范上,因此瀑布思维分散了注意力。因此,BDD更容易理解为设计实践,而不是测试实践。

票数 16
EN

Stack Overflow用户

发布于 2008-09-10 16:00:43

似乎有两种类型的BDD。

第一个是Dan North讨论的原始风格,它导致了xBehave风格框架的创建。对我来说,这种风格主要适用于对域对象的验收测试或规范。

第二种风格是Dave Astels普及的,对我来说,这是一种新的TDD形式,具有一些严重的好处。它关注的是行为,而不是测试,也关注小的测试类,试图达到基本上每个规范(测试)方法一行的程度。这种风格适合所有级别的测试,并且可以使用任何现有的单元测试框架来完成,尽管较新的框架(xSpec风格)有助于专注于行为而不是测试。

还有一个BDD组,您可能会发现它很有用:

http://groups.google.com/group/behaviordrivendevelopment/

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档