unit-testing - TDD 和 BDD 之间的主要区别是什么?

标签 unit-testing tdd bdd

过去几年,测试驱动开发在 .NET 社区中风靡一时。最近,我在 ALT.NET 社区中听到了有关 BDD 的提示。它是什么?它与 TDD 有何不同?

最佳答案

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

它与编写用户故事的某种方式相关联,包括高级测试。 Tom ten Thij 的示例:

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 的比较。还有一个关于 BDD 的观点:“TDD 做得正确”,作者:Jeremy D. Miller

2013 年 3 月 25 日更新

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

关于unit-testing - TDD 和 BDD 之间的主要区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2509/

相关文章:

c# - 我如何使用 Caller Info 属性进行 TDD?

TDD模拟-是否指定模拟对象行为白盒测试?

linq - 使用 Entity Framework 进行单元测试

java - 如何为自定义 Spring Batch Reader 编写 junit

python - 最无缝的 TDD/测试技术

tdd - 创新的软件工程方法

javascript - 在 Rails 中测试 JavaScript View

javascript - 测试浏览器扩展

visual-studio - 运行所有测试时出现MS Test错误

javascript - 如何在 Jasmine 中假装离线?