测试驱动开发在过去几年来一直是.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 done right”的意见Jeremy D. Miller
2013年3月25日更新
上面的视频已丢失了一段时间。这是最近的一个由Llewellyn Falco,BDD vs TDD (explained).我发现他的解释清楚和到点。