问题标签 [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.
ruby-on-rails - 使用 gherkin 编写功能的原因
我将黄瓜与小黄瓜一起使用,因为它是 Rails 社区中集成测试的主流。但现在我怀疑它是否是灵丹妙药。
我看到了几种应该使用 Cucumber 的情况:
- 有必要向没有任何编程知识的人展示功能。以客户为例。
- 一个人想要即时创建文档并且不为此付费,就像黄瓜本身在 Relish 的帮助下所做的那样。这对于公共文档中需要的开源项目来说非常酷,但对于封闭的小型项目来说就不是那么酷了。
如果您是程序员并且只想通过集成测试覆盖您的产品,是否存在使用 cucumber 的其他原因?或者如果您想使用 BDD 但又不想用小黄瓜语言写一首关于您未来应用的诗?
cucumber - 失败后继续运行黄瓜步骤
即使其中一个步骤失败,是否有任何方法可以继续执行 Cucumber Steps。在我当前的设置中,当一个步骤失败时,黄瓜会跳过剩余的步骤..我想知道是否有某种方法可以调整黄瓜跑步者的设置..
我可以注释掉失败的步骤,但是当你不知道哪个步骤会失败时它不实用......如果我可以继续剩下的步骤,我会一次知道完整的失败测试集......而不是循环往复...
环境:Cucumber JVM、R、Java、Ibatis、Spring Framework、Maven
gherkin - 小黄瓜描述测试或功能?
这是我遇到的一个有趣的话题,我和我的同事对这个问题有不同的看法。您的 Gherkin 是否应该准确描述测试在做什么,或者只显示您在测试中尝试实现的业务逻辑。
我在工作中经常遇到的最大的例子是,如果您可以访问项目 A,那么您应该可以访问 A。我们可以有 20 种不同类型的用户可以访问 A,所以我们只选择 1 (以防止我们的测试套件需要 40 小时才能运行)。那么哪个“更好”?
一种
或乙
注意给定语句的差异(类型 4 用户)
在步骤定义中,我们将使用 4 类用户进行测试,但该测试并不特定于 4 类用户。任何具有项目 A 的用户都可以用于此测试,我们只使用类型 4 用户,因为我们需要使用用户类型登录。
所以 A 描述了测试在做什么(使用可以访问项目 A 的类型 4 用户登录)
而 B 描述了访问项目 A 所需的功能(只是可以访问项目 A 的用户)
在您问之前,我们如何确定谁有权访问项目 A 是对数据库的 SQL 调用,以查找链接到用户的特定项目。
ruby - 测试与字段关联的错误文本
在 Capybara + Webkit + Ruby 1.9.3 中,我有以下 HTML
当特定字段出现错误时,simple_form 会生成以下内容。我在“获取”错误文本跨度时遇到了麻烦,并且知道我肯定有与“标题”相关联的那个,而不是另一个可能也有错误的字段。
(当然还有许多其他领域!)
我想测试 Title 实际上是必需的,当用户留空并单击提交按钮时,错误消息“不能为空”存在。除了调整 simple_form 来包裹整个事物之外,有没有办法简单地找到标签,然后转到 DOM 中的下一个元素,看看它是否是一个包含“不能为空白”内容的跨度?
.net - Intellisense 没有列出来自程序集参考的 Gherkin 语句
Intellisense 没有列出来自程序集参考的 Gherkin 语句
例如:在项目 A “Specific.feature”中
项目 B - 作为项目参考“Commons.feature”包含在 A 中当我单击“<element>”时
在“Specific.feature”文件中,如果我执行智能感知,那么我看不到 [我点击“<element>”]
-提前致谢
ruby-on-rails - Rails:Windows 命令提示符 64 位中 Cucumber 1.2.4 的堆栈级别太深 (SystemStackError)
当我关注 railstutorial.org 学习黄瓜时,测试程序不断崩溃。
当我输入:bundle exec cucumber features/ 来运行 signing_in.feature 时,命令行会抱怨:
堆栈级别太深 (SystemStackError) C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1.gems/cucumber-1.2.4/lib/cucumber/parser/gherkin_builder.rb:100
以下是从我的 gemfile 复制的:
cucumber - Gherkin 场景应该总是有When步骤吗?
在 Gherkin 中定义场景时,有时 Given 和 When 步骤之间没有明确的区别,即用户没有与系统进行主动交互,验证的目的是验证系统在特定情况下的外观。
考虑以下:
对比
我不确定我是否会一直使用第二种变体。如果我有多个场景共享上下文“用户在帐户页面上”并且其中一些有额外的用户操作而其他人没有,那么在我看来,将“用户在帐户页面中”作为给定步骤保留应该是有效的即使在某些情况下它可能缺少“何时”。这是一种有效的方法吗?
cucumber - Gherkin and Cucumber 的特色和场景是什么?
假设我正在使用 Cucumber 开发购物车 BDD。购物车相当复杂并且有很多花里胡哨的东西,但这对于“博客”或“用户资料”可能同样适用。
我一直认为“购物车”是Feature,而花里胡哨的是Scenario。但是,这可能会生成大型Feature文件,并且与Scenario的字面意思相违背。这是看起来的样子:
填写的细节越多,这个“空车”组就会变得越长。我想知道,“清空购物车”是否应该被视为独立功能?这将导致许多Features,都包含但几个Scenario的。然后场景变得更像“上下文”。像这样:
什么是使某物成为Feature的好指南?我什么时候应该将Scenario重新组合到他们自己的Feature中?一个功能通常有多少个场景?
php - Gherkin + Behat 场景大纲抛出 Behat\Gherkin\Exception\ParserException
我正在尝试运行注册示例,但我卡住了
然后我收到以下错误:
[Behat\Gherkin\Exception\ParserException] 预期的注释或场景或大纲或步骤标记,但得到了示例
我究竟做错了什么?我在 behat doc 上找不到任何帮助。
ruby - 使用 Gherkin 测试 XML 输入
我应该如何在 Gherkin 中编写测试 XML 进入系统的 Cucumber 测试?
我有一个追逐我的尾巴的时刻,试图弄清楚为什么我的 XML 解析器在查看这样的内容时会抛出“错误的结束标记”错误:
Gherkin 解释器(在 Ruby 中)查看<xml>
werexml = <testing><hi>world</hi></testing>
和替代行<hi>
,进行最终测试:
显然不是我想要做的!
这让我觉得有一种更好的方法可以以示例格式发送更大但重要的代码片段(这样它就不会被 Gherkin 的替代品取代)
有什么建议吗?