我基于 Cypress.io 设置了以下 Cucumber BDD。对值进行硬编码时测试运行良好,但在以“带有示例的场景大纲”方式给出时失败。我错过了什么?
错误:
功能文件:
步骤定义:
版本:
赛普拉斯 7.1.0:赛普拉斯黄瓜预处理器:“^4.0.3”,
我基于 Cypress.io 设置了以下 Cucumber BDD。对值进行硬编码时测试运行良好,但在以“带有示例的场景大纲”方式给出时失败。我错过了什么?
错误:
功能文件:
步骤定义:
版本:
赛普拉斯 7.1.0:赛普拉斯黄瓜预处理器:“^4.0.3”,
您正在传递它{String}
,但它应该是{string}
全部小写。那应该可以解决您的问题。
When(/^keying the vessel identifier {string} on the search box$/, (vesselName) => {
Search.doSearch(searchTerm)
});
编辑:
请尝试这样做,删除正则表达式模式,而是使用双引号来定义您的 WHEN 语句。如果您使用的是正则表达式模式,那么我认为您无法{string}
在步骤中使用它来定义字符串参数。
When("keying the vessel identifier {string} on the search box", (vesselName) => {
Search.doSearch(searchTerm)
});
在尝试了所有组合之后,这个(使用正则表达式)一个工作。
When(/^keying the vessel identifier ([^"]*) on the search box$/, searchTerm => {
Search.doSearch(searchTerm)
});
与往常一样,解释在文档中。
如果使用 Cucumber 表达式 {string},则要匹配的字符串必须用引号括起来(双引号或单引号)。
您在功能文件中的给定行应如下所示:
When keying the vessel identifier 'something' on the search box
https://cucumber.io/docs/cucumber/cucumber-expressions/ (参数类型)
{string} :匹配单引号或双引号字符串,例如“banana split”或“banana split”(但不匹配banana split)。只会提取引号之间的文本。引号本身被丢弃。空引号对是有效的,将被匹配并作为空字符串传递给步骤代码。