问题标签 [gherkin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
26824 浏览

ruby-on-rails - 如何学习/教黄瓜小黄瓜

我想让业务分析师能够使用 Gherkin 编写对 Cucumber 友好的功能、场景和步骤的所有规范。

我已经阅读了 Cucumber 的 github 网站上的一些基本信息,并通过快速的 Google 搜索,但想知道是否有推荐的资源让非技术人员能够使用 Gherkin 编写全面的 BDD(我假设那是用于创建 Cucumber 测试的首选语言)。

谢谢。

0 投票
2 回答
5497 浏览

.net - 如何在 Visual Studio 中突出显示 .feature 文件的 Gherkin 语法?

默认情况下,Feature、Scenario、Given、When、Then 等关键字没有高亮显示。是否有现成的模板来启用此功能?

0 投票
4 回答
43842 浏览

cucumber - 如何在不删除功能的情况下禁用 specflow (Gherkin) 中的功能?

我有一些 SpecFlow 功能(使用 Gherkin 语法),我想暂时禁用该功能以阻止其测试运行?

有没有我可以标记功能的属性来做到这一点?我猜测适用于 Cucumber 的东西也可能适用于 SpecFlow。

0 投票
1 回答
201 浏览

cucumber - 无法使用 IronRuby 运行 Cucumber

我希望有人知道这个问题的答案,我正在从 IronRuby 运行 Cucumber 并获得 IKVM 异常。堆栈跟踪位于底部。RSpec 工作正常。

有任何想法吗?

无法将数组转换为 java::util::List (TypeError) C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/gherkin-2.1.5-universal-dotnet/lib/gherkin/本机/ikvm.rb:37:in `new'

C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/cucumber-0.8.5/bin/../lib/cucumber/cli/configuration.rb:29:in `parse!'

C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/cucumber-0.8.5/bin/../lib/cucumber/cli/main.rb:78:in `configuration'

C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/cucumber-0.8.5/bin/../lib/cucumber/cli/main.rb:43:in `execute!'

C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/cucumber-0.8.5/bin/../lib/cucumber/cli/main.rb:25:in `execute'

C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/cucumber-0.8.5/bin/cucumber:8

0 投票
2 回答
12466 浏览

ruby-on-rails - 尝试使用 Cucumber 功能中的“示例”部分时解析问题

在谷歌上搜索此错误消息时运气不佳

features/manage_hand_evaluator.feature:在 features/manage_hand_evaluator.feature:21 处解析错误。在期望以下之一时找到示例:comment、py_string、row、scenario、scenario_outline、step、tag。(当前状态:步骤)。(小黄瓜::Parser::ParseError)

这是我对示例部分的设置(目前没有其他场景,只有“功能:”部分之后的这个)

...

我也已经为那些“给定,何时,然后”行设​​置了步骤定义(当我用一些文本替换 , 并注释掉“示例”部分时,测试通过了)。所以似乎步骤定义设置正确,只是我在 .feature 文件中的内容存在某种解析问题,我无法弄清楚我做错了什么。

安装的相关宝石: Gherkin (2.1.5) (试过 2.2.0 但它与我的 Cucumber 版本中断) Cucumber (0.8.5) Cucumber-Rails (0.3.2) Rails (2.3.8)

0 投票
1 回答
4187 浏览

cucumber - 在 jruby 中使用黄瓜

我正在使用我公司的 Intranet

  • 黄瓜 0.8.5
  • 小黄瓜 2.1.5

我正在尝试从使用 ruby​​ 1.8.7 切换到 jruby 1.5.1

但是,每当我尝试从 jruby 运行 cucumber 时,都会出现错误:

我认为这是 b/c gherkin 2.1.5 是原生扩展,jruby 无法处理:

现在,我很想尝试更新版本,但由于这是在受保护的 Intranet 上,因此导入新软件是一个 PITA,需要一些时间。

有人对我如何使我拥有的软件工作有任何建议吗?我是否缺少正确的配置设置或类似的设置?

0 投票
3 回答
1383 浏览

ruby-on-rails - 如何根据正在执行的功能文件加载 Cucumber 步骤定义

我想修改 cucumber,以便在执行给定功能时(比如“login.feature”),我只希望为 web 步骤加载 login_steps.rb。不应加载其他步骤文件。

IMO 这将非常有用,具有相同的步骤,但实施工作与正在执行的功能名称不同。

由于我有近一百个场景,如果这些步骤是高级步骤,我更愿意这样做是有道理的。

有任何想法吗?

0 投票
3 回答
3217 浏览

ruby-on-rails - 带有插值的 Ruby Cucumber 多行引号?

我正在使用 Cucumber 将 JSON 发送到一些 API 操作。在一个实例中,我需要知道在 API 调用之前构建的对象的 ID 并将该 ID 传入。

我想做这个:

这不起作用,因为"""字符串不会像双引号字符串那样插入变量。该I have already built a document步骤构建@document对象,所以我不提前知道我的 ID 是什么。如果重要的话,我将 MongoDB 与 mongoid 一起使用,而我手动设置 ID 的努力被证明是徒劳的。

有没有一种干净的方法可以做到这一点?

环境:

0 投票
2 回答
1418 浏览

cucumber - 小黄瓜规范中步骤之间的强耦合

我正在使用 specflow 来指定我的应用程序,它只是让我免于做非常糟糕的事情,所以我真的很喜欢它:-) 但是我在步骤之间的耦合方面遇到了问题:例如,因为我在一个中大量使用模拟步骤我告诉模拟它应该返回一个实体,但在另一个我告诉模拟返回相同的实体,但具有另一个属性。

看看这一步(从下面的 Darrens 答案中窃取并修改):

请参阅此处,我从 Guy 对象开始,然后修改该对象 - 这是我正在测试的东西。

因此,我将一个实体放入模拟存储库中,然后在另一个步骤中将其拉出并再次放入。如何避免步骤之间的高耦合和可重用性?

当然,我可以在场景类中保留一个局部变量并将所有实体放入该变量中,但是我会结合这些步骤。

0 投票
4 回答
4884 浏览

bdd - BDD 场景应该包括实际的测试数据,还是仅仅描述它?

我们已经意识到在定义典型的 CRUD 场景时有两个选项可以指定测试数据:

选项 1:描述要使用的数据,并让实现定义数据

选项 2:明确说明要使用的测试数据

在利弊方面,我们已经确定的是:

选项 1 很好地涵盖了“有效名称”的定义发生变化的情况。如果我们使用测试数据位于多个位置的选项 2,这可能会更难处理。选项 1 明确描述了此测试数据的重要性,尤其是在我们所说的“输入了无效的信用卡号”之类的情况下。它还以某种方式“感觉”更抽象和 BDD,更关注描述而不是实现。

但是,选项 1 使用了很难重复使用的非常具体的步骤。例如,“页面应该显示创建的区域详细信息”可能只会在这种情况下使用。相反,我们可以实现选项 2 的“页面应该显示以下字段”,以使其可以被其他场景多次重复使用。

我还认为选项 2 似乎对客户更友好,因为他们可以通过示例看到正在发生的事情,而不必解释更抽象的术语,例如“有效”。选项 2 会更脆弱吗?重构模型可能意味着破坏这些测试,而如果测试数据是在代码中定义的,编译器将帮助我们进行模型更改。

我很欣赏这里不会有正确或错误的答案,但想听听人们对他们如何决定使用哪个的意见。

谢谢!