在 Gherkin 中使用正确的语法

2024-02-24

查找有关 Gherkin 的文档似乎非常困难,所以我想知道是否有一种方法可以增强步骤定义以使测试人员能够使用正确的语法。有一个例子可以说明我的意思:

...Testing...
Then I see there is 1 item
...More testing...
Then I see there are 2 items

显然,这两个步骤将使用相同的代码。我定义了一个像这样的步骤定义,它几乎可以工作:

Then(/^I see there (is|are) (\d+) item(s)?$/) do |item_count|
  ...code...
end

除了问题是它解释is/are和可选的复数s作为参数。有没有什么方法可以向小黄瓜发出信号,表明这些只是为了允许正确的语法?


在组的开头使用 ?: 将其标记为非捕获,Cucumber 不会将其作为参数传递。

/^I see there (?:is|are) (\d+) item(?:s)?$/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Gherkin 中使用正确的语法 的相关文章

  • rake cucumber 和 rake spec 始终使用“开发”环境

    我运行 Cucumber 和 RSpec 测试的 rake 任务始终使用我的development环境 以下是相关的配置文件 RAILS ROOT config environments cucumber rb Edit at your o
  • 黄瓜测试java例子?

    我想尝试使用黄瓜测试的示例应用程序 黄瓜测试可以仅使用 ruby 完成 也可以使用 java 完成 请帮我举一个示例 谢谢 您可以查看我们在我们这里编写的一个简单示例来演示 cucumber jvm https github com gph
  • 区分块和对象初始值设定项

    这更多的是一个理论问题 而不是一个实际问题 这是关于解析一些由大括号分隔的代码 这是两个例子对象初始值设定项 http es5 github io x11 1 5 f a 3 这是两个例子blocks http es5 github io
  • 这些 Python 符号是什么:“[ [] ] * n”和“(i,)”

    有人可以澄清一下Python中的这两个符号吗 n 显然这会创建对同一对象的 n 个引用 在本例中是一个空列表 这在哪些情况下有用 i 我看到有些人使用这种 尾随逗号 表示法 例如 生成 0 1 2 n 1 的所有大小为 k 的子集 http
  • 什么是{| ... |} 在 JavaScript 中是什么意思? [复制]

    这个问题在这里已经有答案了 通读 javascript 代码库 我遇到了如下代码块 export type RouteReducerProps error Error isResolving boolean isResolved boole
  • 什么是@”运算符?

    我在互联网上搜索了这意味着什么 包括 and 单独 正是在这个code https gist github com jakeballard 11240204 Win32ShowWindowAsync Add Type memberDefin
  • jquery 隐藏简单的 javascript 错误

    我在 chrome 和 firefox 中使用 jQuery 和 flot 当我编写代码时 我发现执行在一些愚蠢的事情上会默默失败 例如访问不存在的哈希结构等 感觉 jQuery 中有一些 try catch 逻辑 让我看不到任何错误 有没
  • 判断字符串是否包含有效的javascript代码

    我正在寻找一个C 返回的函数true如果字符串包含有效的 JavaScript 语法 例如 IsValidJavascript alert hello 会回来true but IsValidJavascript alertXXhelloZ
  • cucumber.json 报告被重新运行场景报告覆盖

    我有一个具有相同技术堆栈 JAVA1 8 Cucumber JVM JUnit Maven 的 UI 测试项目和一个 API 测试项目 这两个项目都向我展示了这个问题 可能是因为两者都存在相同的依赖关系集 我使用了使用 maven sure
  • cucumber-junit-platform-engine 中的功能文件发现

    In cucumber junit我使用的库 CucumberOptions定义功能文件位置 package com mycompany cucumber import cucumber api CucumberOptions import
  • Python 3.2 中 **kwargs 和 dict 有什么区别?

    看起来Python的很多方面都只是功能的重复 除了我在 Python 中的 kwargs 和 dict 中看到的冗余之外 还有什么区别吗 参数解包存在差异 许多人使用kwargs 并通过dict作为论据之一 使用参数解包 Prepare f
  • 如何迭代 Bash 中变量定义的数字范围?

    当范围由变量给出时 如何在 Bash 中迭代数字范围 我知道我可以做到这一点 在 Bash 中称为 序列表达式 文档 http www gnu org software bash manual bashref html Brace Expa
  • 与 Perl 和 Ruby 比较的相似语言特性 __END__

    背景 Perl 和 Ruby 有 END and DATA 允许将任意数据直接嵌入源代码文件中的标记 尽管这种做法可能不适合通用编程用途 但它对于例行任务的 一次性 快速脚本非常有用 问题 还有哪些其他编程语言支持相同或类似的功能 它们是如
  • 黄瓜(Java 中):如何仅使用两个标签运行场景

    我有一些功能文件 每个场景都有多个标签 但我想运行那些同时具有 a 和 b 场景的人 我怎样才能做到这一点 tags a b gt this will do a OR b scenarios Thanks 我想到了 Tags a b gt
  • 在yaml中写入#(在字符串中)

    我是新使用 yml 文件 用于我的框架中的翻译 我试图在翻译中添加一个 将是一个推特分享 blabla 这可能吗 因为文件将其翻译为评论 只需将值放在单引号或双引号内 它就不会被视为注释 就像是 en twitter share hasht
  • Oracle 语法 - 我们是否必须在新旧语法之间进行选择?

    我在一个由大约 8 名开发人员组成的团队中负责大约 1 000 000 行源代码的代码库 我们的代码基本上是一个使用 Oracle 数据库的应用程序 但代码随着时间的推移而不断发展 我们有大量九十年代中期的源代码 团队中就我们用于查询 Or
  • C#中global::关键字的用法是什么?

    有什么用global C 中的关键字 什么时候我们必须使用这个关键字 从技术上来说 global不是关键字 它是所谓的 上下文关键字 它们仅在有限的程序上下文中具有特殊含义 并且可以在该上下文之外用作标识符 global每当有歧义或成员被隐
  • extern 关键字对 C 函数的影响

    在C中 我没有注意到任何影响extern在函数声明之前使用关键字 起初 我认为在定义时extern int f 在单个文件中forces您可以在文件范围之外实现它 然而我发现两者 extern int f int f return 0 an
  • 黄瓜与 RSpec

    我想开始深入研究 BDD 我以前从未使用过 TDD 现在 不确定我是否应该从学习 RSpec 开始 然后跳到 Cucumber 或者直接使用 Cucumber 我一直在互联网上阅读有关两者的内容 在我看来 Cucumber 可能是 RSpe
  • Javascript 中“options = options || {}”是什么意思? [复制]

    这个问题在这里已经有答案了 前几天我看到了一段令我感到好奇的代码片段 但我不太确定它实际上是做什么的 options options 到目前为止我的想法 设置变量options重视options如果存在 如果不存在 则设置为空对象 Yes

随机推荐