2009-12-25 48 views
7

我刚刚听到有关BDD,当我看Scott Guthrie in Sweden的视频。一位听众向Scott问起关于VS2010和ASP.NET MVC如何支持BDD的问题。使用ASP.NET MVC 2 + C#4的最佳BDD框架是什么?

之后,我搜索了关于BDD (Behavior Driven Development),与TDD (Test Driven Development)进行比较时,关注规格多于单元测试。我发现了一些适用于Ruby和Java的框架。但我没有任何着名的.NET框架。

请给我建议关于BDD框架和它的总结PRO/CON。

PS。建议BDD框架必须在.NET 4中工作的伟大,C#4.0和ASP.NET MVC 2

感谢,

回答

13

我看到这个问题已经有了答案,我没有试过NBehave。但是,我们正在使用MSpec (Machine.Specifications)这个相当大的企业项目,它在我们这里工作得很好。非常值得一提的是。

罗布科纳做了学习BDD,在那里他使用MSpec,一行行的出色的视频: (链接删除,不再可用,但搜索),

更多MSpec从罗布科纳,为什么他使用它。
http://wekeroad.com/2009/09/21/make-bdd-your-bff-2/你可能也想看看他的其他帖子标记BDD以及。

优点:

  • 允许快速您的整个故事,Scenerios,上下文和规格的 “磕碰” - 没有任何实际的代码。让我们关注BDD!的整体“行为”,而不用担心代码和编译问题。
  • 生成一个优秀的HTML报告,在存根指定旁边带有“< - NOT IMPLEMENTED”。我经常把这份报告交给:客户(首席执行官和首席技术官),测试人员,我带入这个项目的新资源,以及任何想知道软件如何工作的人 - 而无需展示一行代码!
  • TestDriven.NET跑步者使用新的tdnet链接(无设置!)包含在MSpec中。
  • [Behaviors]属性及其Behaviors_like委托类型使复制现有规范从一个scenerio复制到另一个scenerio快照。

缺点:

  • 几乎没有文档,即使没有太大的需要(看上面的视频)。作者最近在文档上写了帮助。
  • 还是新的,只是作者的一个副项目(不是他的主要演出)。但是,这篇文章非常活跃。

希望有帮助。

+0

我还应该加上MSpec 0.3,现在有一个ReSharper测试跑步者。 – eduncan911

+0

感谢您分享大量有关BDD框架的信息。 –

1

你看着NBehave?你也可能想看看this old question。但我还想补充一点,恕我直言,可以使用任何种类的单元测试框架来执行BDD。一个简单直接的方法是将你的“测试类”命名为“Given_X”,然后让所有“测试方法”的名称都是“It_should_Y”。

+0

+1一直在做BDD相当一段时间没有框架。 – jamesaharvey

+0

@james你可能会喜欢http://storyq.codeplex.com,因为它是一个非常小的框架,基本上可以为你提供正常单元测试的BDD风格报告。 –

6

在决定你不需要太多框架之后,我构建了StoryQ。这是非常轻便,在现有的测试运行嵌入,检查出来的http://storyq.codeplex.com

+0

总是很高兴看到有人创建自己的BDD框架! +1 OT评论:在您的StoryQ主页上的示例中,您将显示嵌入类。 ReSharper的单元测试(从4.5开始)不支持嵌入类。你最好去掉DemoTest类包装器,然后使用更精确的命名空间。 – eduncan911

+0

@ eduncan911是又一个;)。嘿,我不确定你的意思是“嵌入类”,层次结构是:namespace StoryQ.Demo /类DemoTest/method PassingExample ... –

+0

Doh,你说得对。没有嵌入那里。 :)对不起,下午很忙。 – eduncan911

8

我建议你尝试SpecFlow这很奇怪,没有人的提及它。这里有一篇关于using BDD with Specflow and Asp.Net MVC的伟大文章open source and is hosted on GitHub

Spec flow使用我个人非常喜欢的GWT(Given When Then)语法。到目前为止,我们已经取得了巨大的成功,BDD现在试图使用SpecFlow来实现。目前尚处于早期阶段,但迄今为止进展顺利。

优点:

  1. 集成到VS2008 & VS2010用一个漂亮的插件
  2. 采用流行鉴于然后当词汇
  3. 使用标准NUnit的测试运行
  4. 特性文件,您可以简单地粘贴在从方案业务分析师

缺点:

  1. 背后的特征码是有点难看,虽然没什么不好
  2. 据我所知,该报告的格式相当有限(我只是使用NUnit)

我鼓励你搏一搏。

相关问题