84

很快,有没有人在 .NET 领域遇到过类似于 Ruby 的 cucumber(一种人类可读的 DSL,用于定义可以测试的用例故事)的库?

4

8 回答 8

96

您还应该查看SpecFlow,这是一个使用 .NET 进行 BDD 的开源项目。

SpecFlow 使用相同的定义格式 (Gherkin),例如 cucumber,但您可以在 .NET 中编写您的步骤定义。它基本上从您的功能文件中生成单元测试类(NUnit、MsTest、xUnit 等),因此您可以使用相同的单元测试执行引擎,就像使用真正的单元测试一样。这样也更容易将 BDD 功能测试集成到集成构建中。

在最近的版本中,SpecFlow 为 Visual Studio 2010 提供了语法着色功能,并支持 Silverlight 和 Mono/MonoDevelop。

于 2009-11-03T09:15:27.070 回答
36

当然。它叫黄瓜在Cucumber 示例目录和 Cucumber Wiki 上的.NETMono文档中有一个如何测试 .NET 代码的示例。

于 2009-06-10T17:24:57.777 回答
21

在这个空间里似乎有 3 种可能性:

  1. 使用黄瓜和 IronRuby。 这是一个关于开始使用它的一些步骤的博客。缺点似乎是性能。我读过帐户说它总体上较慢,而其他人则说它的启动速度真的很慢。不过这还远没有定论,因为 IronRuby 仍在积极开发中。

  2. 使用Cuke4Nuke。我听说过这个产品推荐了几次。它实际上使用常规的 Ruby 和 Cucumber,但通过服务器运行您的 .NET 代码。幸运的是,所有这些复杂性在您使用时都是透​​明的。Cuke4Nuke 不再处于积极开发中。

  3. 使用规范流。这是 Cucumber 的 .NET 端口。因此,它可能不具备 Cucumber 的所有功能,并且可能具有额外的功能。好消息是您不必安装 Ruby。

目前尚不清楚其中哪一个是最佳选择。我个人打算从 Cuke4Nuke 开始。

于 2010-01-17T00:24:06.570 回答
4

StoryTeller 有点相关,尽管它不是严格的 BDD。它似乎支持某种不同类型的测试,但它是用 .NET 编写的。阅读更多关于杰里米米勒的博客

于 2010-02-01T10:08:29.840 回答
4

可以使用Concordion.NET完成简单英语的 BDD。预期行为的规范是用 HTML 编写的。

任何结构的任何句子都可以用于 Concordion.NET 测试。例如,没有必要写“给定一个余额为10美元的银行账户,当发起20美元的提款时,交易失败”这样的句子。相反,可以使用任何类型的句子,例如“如果帐户中没有足够的 10 美元余额,则 20 美元的交易失败”。

Concordion.NET 测试是在 NUnit 的帮助下执行的,它集成在许多不同的环境中:https ://github.com/concordion/concordion-net

于 2014-05-21T18:36:42.667 回答
3

我写了一篇博客文章,详细介绍了我使用 IronRuby 运行 Cucumber 的过程:http: //hotgazpacho.org/2009/06/cucumber-and-ironruby-it-runs/

于 2009-06-14T05:58:52.570 回答
2

还有StoryQ。这是一种以开发人员为中心的用户故事方法,可以报告客户。 http://storyq.codeplex.com

StoryQ 是适用于 .NET 3.5 的可移植(单个 dll)嵌入式 BDD 框架。它在您现有的测试运行程序中运行,并有助于生成人性化的测试输出(html 或文本)。StoryQ 流畅的界面为您的 BDD 语法添加了强类型、智能感知和文档。

于 2010-08-02T10:47:15.777 回答
1

我在http://blog.webintellix.com/2009/10/how-to-use-cucumber-with-net-and-c.html有一篇文章展示了如何在 C# 中使用 Cucumber铁红宝石 1.0。

于 2011-01-25T01:42:16.927 回答