.NET的黄瓜替代品
很快,有没有人遇到类似于Ruby的黄瓜(一个人类可读的DSL用于定义可以testing的用例故事)在.NET领域的库?
你也应该看看SpecFlow ,这是一个开源项目,用.NET来做BDD。
SpecFlow使用相同的定义格式(黄瓜),就像黄瓜,但你可以在.NET中编写你的步骤定义。 它基本上从你的特性文件生成unit testing类(NUnit,MsTest,xUnit等),所以你可以使用相同的unit testing执行引擎,就像你真正的unit testing一样。 这样,将BDDfunctiontesting集成到集成构build中也更容易。
在最近的版本中,SpecFlow具有Visual Studio 2010的语法着色function,并支持Silverlight和Mono / MonoDevelop。
当然。 这叫黄瓜 。 有一个如何在Cucumber示例目录中testing.NET代码的例子,以及用于.NET和Mono的Cucumber Wiki的文档。
这个领域似乎有三种可能性:
-
使用黄瓜和IronRuby。 这里有一些关于开始这个步骤的博客 。 缺点似乎是performance。 我已经阅读了一些总体上说速度较慢的账户,而其他人则认为这个速度真的很慢 。 尽pipe如此,IronRuby仍处于积极的发展阶段,这还远没有定论。
-
使用Cuke4Nuke 。 我听说过这个产品推荐了几次。 它实际上使用普通的Ruby和Cucumber,但通过服务器运行.NET代码。 幸运的是,所有这些复杂function在您使用时都是透明的。 Cuke4Nuke不再积极发展。
-
使用SpecFlow 。 这是一个黄瓜的.NET端口。 正因为如此,它可能不具备黄瓜的所有function,并且可能具有额外的function。 好的是你不必安装Ruby。
目前看不出哪个是最好的select。 我个人计划从Cuke4Nuke开始。
我写了一篇博客文章,详细介绍了我使用IronRuby运行Cucumber的过程: http : //hotgazpacho.org/2009/06/cucumber-and-ironruby-it-runs/
StoryTeller是有点相关的,即使它不是严格的BDD。 它似乎支持一种不同的testing,但是用.NET编写。 阅读更多关于Jeremy Millers的博客
还有StoryQ。 这是一个以用户故事为重点的开发方法,可以报告客户。 http://storyq.codeplex.com
StoryQ是一个用于.NET 3.5的可移植(单一dll)embedded式BDD框架。 它在您现有的testing运行器中运行,并帮助产生人性化的testing输出(html或文本)。 StoryQstream畅的界面为您的BDD语法添加了强大的打字,智能感知和文档。
简单英语的BDD可以用Concordion.NET完成。 预期行为的规范是用HTML编写的。
任何结构的任何语句都可以用于Concordion.NETtesting。 例如,没有必要写一个句子,例如“给予一个10美元的余额的银行账户,当20美元的提款被启动,交易失败”。 相反,可以使用任何types的句子,例如“20美元的交易失败,如果账户中没有足够的10美元的余额”。
Concordion.NETtesting是在NUnit的帮助下执行的,它集成在许多不同的环境中: https : //github.com/concordion/concordion-net
我有一篇文章展示了如何在C#中使用Cucumber, url是:http ://blog.webintellix.com/2009/10/how-to-use-cucumber-with-net-and-c.html IronRuby 1.0。