问题标签 [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 投票
2 回答
4421 浏览

cucumber - 如何增加 SpecFlow/Gherkin 步骤之间的可重用性?

我想我彻底理解了 SpecFlow 背后的概念和想法,但是即使在阅读了Secret Ninja Cucumber ScrollsThe Cucumber Book并浏览了各种论坛之后,我仍然不确定通往可重用性的道路。

我们的场景已经符合各种准则

  • 不言自明
  • 必须有一个可以理解的目的(是什么使它与其他场景不同)
  • 是独一无二的
  • 表示垂直功能切片
  • 使用无处不在的语言
  • 从利益相关者的角度撰写
  • 关于业务功能,而不是软件设计
  • 按史诗分组
  • 不是测试脚本
  • 让其他人阅读它们以查看场景是否正确
  • 不涉及 UI 元素
  • 代表关键示例
  • 非技术
  • 精确且可测试
  • 尽可能重复
  • “给定”代表状态,而不是动作
  • 'When' 代表动作
  • “那么”应该代表一个可见的变化,而不是一些内部事件

我们的步骤必须遵守以下准则(一些特定于 SpecFlow):

  • 使用无处不在的语言
  • 不涉及 UI 元素
  • 不应该合并
  • 应该是可重用的,并且在所有功能上都是全局的
  • 不应链接到特定功能
  • 按实体、实体组或领域概念分组
  • 不要创建步骤以重用步骤定义文件中的逻辑
  • 仔细考虑一个步骤属于哪个步骤文件
  • 不要在阶段之间重用步骤
  • 必须避免在步骤中使用文字字符串,但如果需要,请使用单引号
  • 切勿将多个 [Given]、[When] 或 [Then] 属性应用于 step 方法
  • 根据它们所代表的阶段对步骤进行排序
  • 如果对场景不重要,很重要的就别提了

但是即使我们使用正则表达式占位符,我们仍然会得到相同步骤的许多变体。尤其是如果某件事不重要,则不应提及它的规则会导致这些变化。是的,在内部,这些步骤做了很多重用,但不是在场景中。

例如考虑以下场景:

将两个“给定”步骤合二为一并失去一些可重用性会更好吗?

其他一些例子:

我在这里错过了一个基本概念吗?

0 投票
1 回答
2217 浏览

cucumber - 用 Gherkin Pirate 编写的场景示例

据我所知,Gherkin 支持多种不同的语言,包括 Pirate

有人可以列出 pirate 中的关键字示例,以及某个场景可能听起来像或知道列出了一些示例的网站吗?

0 投票
5 回答
21528 浏览

testing - 在 Gherkin 中编写“Given When Then When Then”测试是否可以接受?

在 Gherkin 中编写“Given When Then When Then”测试是否可以接受?一个真实的例子如下 allPlayers.com

我知道它使用 behat 工作,所以解析它不是问题。我只是想编写更好的测试。我可以先写,And the Registration Wizard should be filled out with data但这似乎不够具体......

建议?

0 投票
1 回答
326 浏览

ruby-on-rails - 西班牙语中的黄瓜步骤定义:“...”的模糊匹配

我正在尝试将黄瓜的步骤定义翻译成西班牙语,但出现此错误:

这是我的 web_steps.rb

如果我在正则表达式中得到了 ^ 和 $ ,那怎么可能是模棱两可的?

0 投票
1 回答
1675 浏览

ruby - 安装 Gherkin 2.1.5 疑难解答

我正在尝试安装 Gherkin 2.1.5,嗯,实际上它是https://github.com/opencongress/opencongress的依赖项。我正在使用bundle install代码的根目录进行安装,安装了大约 20-30 个包,现在我被困在这个上面了。我在跑步:

这是停止安装后的输出。

我以前从来没有用过 ruby​​ 编程,所以我对整个安装过程有点脱节。我刚刚弄清楚如何安装红布,并认为我做得很好。感谢您的任何建议。

0 投票
2 回答
13015 浏览

sublimetext2 - Sublime Text 2 中的 SpecFlow/Gherkin 高亮显示

有谁知道是否有任何 Sublime Text 2 包可用于启用 SpecFlow / Gherkin 规范文件的语法突出显示?

0 投票
4 回答
2577 浏览

cucumber - 避免在 Gherkin 中重复自己

所以我已经使用 specflow 一段时间了,有些事情一直困扰着我。

这是我们当前使用的场景示例:

是否有避免在几乎每条线路上都说“苏格兰”的方法?或者它是否使它更具可读性,我应该坚持下去?

0 投票
2 回答
2734 浏览

ruby - Cucumber:未定义的步骤,虽然步骤已定义

我有这个步骤实现

给定 /^entity URI "([^"]*)"$/ do |arg1| @entityUri = arg1 end

我将此步骤从现有功能文件复制到新功能文件

Cucumber 状态 1 个场景(1 个未定义)8 个步骤(2 个跳过,4 个未定义,2 个通过)0m0.009s

您可以使用以下代码片段为未定义的步骤实现步骤定义:

给定 /^entity URI "(.*?)"$/ 做 |arg1| pending # 用你希望结束的代码表达上面的正则表达式

PS:我检查了我的新旧功能文件的目录结构,它们处于同一级别。即使这个解决方案对我也不起作用:Cucumber: undefined step, 尽管 step 应该被定义

0 投票
2 回答
2537 浏览

formatting - 我可以在 specflow 中更改 Gherkin 格式样式吗?

我可以在 specflow 中更改 Gherkin 格式样式吗?我怎样才能做到这一点?

0 投票
1 回答
122 浏览

cucumber - 是否可以在大纲示例中使用表格数据?

这个有可能:

我的问题是:

是否可以在大纲示例中使用表格?就像下面的场景: