使用ASP.NET MVC 2 + C#4的最佳BDD框架是什么?

Sou*_*ter 7 bdd .net-4.0 c#-4.0 asp.net-mvc-2

当我在瑞典观看Scott Guthrie的视频时,我刚刚听说过BDD .一位听众问斯科特关于VS2010和ASP.NET MVC如何支持BDD的问题.

之后,我搜索BDD(行为驱动开发),与TDD(测试驱动开发)相比,专注于规范而不是单元测试.我找到了一些适用于Ruby和Java的框架.但我没有任何着名的.NET框架.

请向我推荐一下BDD框架及其摘要PRO/CON.

PS.建议的BDD框架必须在.NET 4,C#4.0和ASP.NET MVC 2上运行良好.

谢谢,

edu*_*911 13

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

Rob Conery在学习BDD上做了一个优秀的视频,他逐行使用MSpec :(链接已删除,不再可用,但搜索它)

更多关于Rob Conery的MSpec,以及他使用它的原因.
http://wekeroad.com/2009/09/21/make-bdd-your-bff-2/您可能还想查看他标记为BDD的其他帖子.

优点:

  • 允许快速"剔除"整个故事,场景,上下文和规范 - 无需任何实际代码.让我们专注于整体"行为",这是BDD的目的!,无需担心代码并使其编译.
  • 生成一个优秀的HTML报告,在存根规范旁边显示"< - NOT IMPLEMENTED".我经常把这份报告交给:客户(首席执行官兼首席技术官),测试人员,我带入项目的新资源,以及任何想知道软件如何工作的人 - 我不必展示一行代码!
  • MSD使用新的tdnet链接包含TestDriven.NET运行器(无设置!).
  • [Behaviors]属性及其Behaves_like委托类型使现有规范从一个scenerio复制到另一个scenerio.

缺点:

  • 很少甚至没有文档,即使不需要太多(观看上面的视频).作者最近在博客上提供了有关记录的帮助.
  • 还是新的,只是作者的一个侧面项目(不是他的主要演出).但是,从这篇文章来看,它非常活跃.

希望有所帮助.


dan*_*ain 8

我建议尝试SpecFlow很奇怪,没有人提到它.这里有一篇很棒的文章关于将BDD与Specflow和Asp.Net MVC一起使用它是开源的,并在GitHub上托管

Spec flow使用我个人非常喜欢的GWT(Given When Then)语法.到目前为止,我们已经取得了巨大的成功,BDD现在尝试使用SpecFlow实现.它还处于早期阶段,但到目前为止它仍然很顺利.

优点:

  1. 通过一个漂亮的插件集成到VS2008和VS2010中
  2. 使用流行的Given When Then词汇
  3. 使用标准NUnit Test Runner
  4. 通过功能文件,您只需粘贴业务分析师的方案

缺点:

  1. 背后的功能代码有点难看,但没有什么不好
  2. 据我所知,报告格式相当有限(我只使用NUnit)

我鼓励你试一试.


Rob*_*sor 6

我决定你不需要太多的框架之后构建了StoryQ.它非常轻巧,嵌入现有的测试运行器中,请访问http://storyq.codeplex.com查看