很快,有没有人在.NET领域遇到类似于Ruby的黄瓜(人类可读的DSL,用于定义可以测试的用例故事)的库?
Answers:
您还应该签出SpecFlow,这是一个使用.NET进行BDD的开源项目。
SpecFlow使用与黄瓜相同的定义格式(Gherkin),但是您可以在.NET中编写步骤定义。它基本上是从功能文件中生成单元测试类(NUnit,MsTest,xUnit等),因此您可以像使用真实单元测试一样使用相同的单元测试执行引擎。这样,将BDD功能测试集成到集成版本中也更加容易。
在最新版本中,SpecFlow具有Visual Studio 2010的语法着色功能,并支持Silverlight和Mono / MonoDevelop。
当然。它被称为黄瓜。在Cucumber示例目录和Cucumber Wiki上针对.NET和Mono的文档中,有一个如何测试.NET代码的示例。
这个空间似乎有3种可能性:
使用黄瓜和IronRuby。 这是有关此步骤入门的博客。缺点似乎是性能。我读过一些帐户,这些帐户通常说来较慢,而其他帐户则说启动起来真的很慢。但是,由于IronRuby仍在积极开发中,因此还远没有定论。
使用Cuke4Nuke。我听说过几次推荐该产品。它实际上使用常规的Ruby和Cucumber,但通过服务器运行.NET代码。幸运的是,所有这些并发症在您使用时都是透明的。Cuke4Nuke不再处于积极开发中。
使用SpecFlow。这是Cucumber的.NET端口。因此,它可能不具有Cucumber的所有功能,并且可能具有其他功能。令人高兴的是,您不必安装Ruby。
目前,尚不清楚哪个是最佳选择。我个人计划从Cuke4Nuke开始。
我写了一篇博客文章,详细介绍了使用IronRuby运行Cucumber所遵循的过程:http : //hotgazpacho.org/2009/06/cucumber-and-ironruby-it-runs/
即使不是严格的BDD,StoryTeller也有些相关。它似乎支持某种不同的测试,但是它是用.NET编写的。在Jeremy Millers博客上阅读更多内容
可以使用Concordion.NET完成纯英文BDD。预期行为的规范以HTML编写。
任何结构的句子都可以用于Concordion.NET测试。例如,没有必要写这样的句子,例如“给了一个余额为10 $的银行帐户,当开始提取20 $时,交易失败”。而是可以使用任何类型的句子,例如“如果帐户中没有足够的10美元余额,则20美元的交易失败”。
Concordion.NET测试是在NUnit的帮助下执行的,该NUnit集成在许多不同的环境中:https : //github.com/concordion/concordion-net
还有StoryQ。这是开发人员关注的用户故事方法,可以报告出客户。 http://storyq.codeplex.com
StoryQ是适用于.NET 3.5的便携式(单个dll)嵌入式BDD框架。它可以在您现有的测试运行程序中运行,并有助于产生人性化的测试输出(html或文本)。StoryQ的流畅界面为您的BDD语法增加了强大的打字,智能和文档功能。
我在http://blog.webintellix.com/2009/10/how-to-use-cucumber-with-net-and-c.html上展示了如何在C#中使用Cucumber 。 IronRuby 1.0。