问题标签 [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.
cucumber - 如何增加 SpecFlow/Gherkin 步骤之间的可重用性?
我想我彻底理解了 SpecFlow 背后的概念和想法,但是即使在阅读了Secret Ninja Cucumber Scrolls、The Cucumber Book并浏览了各种论坛之后,我仍然不确定通往可重用性的道路。
我们的场景已经符合各种准则
- 不言自明
- 必须有一个可以理解的目的(是什么使它与其他场景不同)
- 是独一无二的
- 表示垂直功能切片
- 使用无处不在的语言
- 从利益相关者的角度撰写
- 关于业务功能,而不是软件设计
- 按史诗分组
- 不是测试脚本
- 让其他人阅读它们以查看场景是否正确
- 不涉及 UI 元素
- 代表关键示例
- 非技术
- 精确且可测试
- 尽可能重复
- “给定”代表状态,而不是动作
- 'When' 代表动作
- “那么”应该代表一个可见的变化,而不是一些内部事件
我们的步骤必须遵守以下准则(一些特定于 SpecFlow):
- 使用无处不在的语言
- 不涉及 UI 元素
- 不应该合并
- 应该是可重用的,并且在所有功能上都是全局的
- 不应链接到特定功能
- 按实体、实体组或领域概念分组
- 不要创建步骤以重用步骤定义文件中的逻辑
- 仔细考虑一个步骤属于哪个步骤文件
- 不要在阶段之间重用步骤
- 必须避免在步骤中使用文字字符串,但如果需要,请使用单引号
- 切勿将多个 [Given]、[When] 或 [Then] 属性应用于 step 方法
- 根据它们所代表的阶段对步骤进行排序
- 如果对场景不重要,很重要的就别提了
但是即使我们使用正则表达式占位符,我们仍然会得到相同步骤的许多变体。尤其是如果某件事不重要,则不应提及它的规则会导致这些变化。是的,在内部,这些步骤做了很多重用,但不是在场景中。
例如考虑以下场景:
将两个“给定”步骤合二为一并失去一些可重用性会更好吗?
其他一些例子:
我在这里错过了一个基本概念吗?
cucumber - 用 Gherkin Pirate 编写的场景示例
据我所知,Gherkin 支持多种不同的语言,包括 Pirate
有人可以列出 pirate 中的关键字示例,以及某个场景可能听起来像或知道列出了一些示例的网站吗?
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
但这似乎不够具体......
建议?
ruby-on-rails - 西班牙语中的黄瓜步骤定义:“...”的模糊匹配
我正在尝试将黄瓜的步骤定义翻译成西班牙语,但出现此错误:
这是我的 web_steps.rb
如果我在正则表达式中得到了 ^ 和 $ ,那怎么可能是模棱两可的?
ruby - 安装 Gherkin 2.1.5 疑难解答
我正在尝试安装 Gherkin 2.1.5,嗯,实际上它是https://github.com/opencongress/opencongress的依赖项。我正在使用bundle install
代码的根目录进行安装,安装了大约 20-30 个包,现在我被困在这个上面了。我在跑步:
这是停止安装后的输出。
我以前从来没有用过 ruby 编程,所以我对整个安装过程有点脱节。我刚刚弄清楚如何安装红布,并认为我做得很好。感谢您的任何建议。
sublimetext2 - Sublime Text 2 中的 SpecFlow/Gherkin 高亮显示
有谁知道是否有任何 Sublime Text 2 包可用于启用 SpecFlow / Gherkin 规范文件的语法突出显示?
cucumber - 避免在 Gherkin 中重复自己
所以我已经使用 specflow 一段时间了,有些事情一直困扰着我。
这是我们当前使用的场景示例:
是否有避免在几乎每条线路上都说“苏格兰”的方法?或者它是否使它更具可读性,我应该坚持下去?
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 应该被定义
formatting - 我可以在 specflow 中更改 Gherkin 格式样式吗?
我可以在 specflow 中更改 Gherkin 格式样式吗?我怎样才能做到这一点?
cucumber - 是否可以在大纲示例中使用表格数据?
这个有可能:
我的问题是:
是否可以在大纲示例中使用表格?就像下面的场景: