1

我基于 Cypress.io 设置了以下 Cucumber BDD。对值进行硬编码时测试运行良好,但在以“带有示例的场景大纲”方式给出时失败。我错过了什么?

错误:

在此处输入图像描述

功能文件:

在此处输入图像描述

步骤定义:

在此处输入图像描述

版本:

赛普拉斯 7.1.0:赛普拉斯黄瓜预处理器:“^4.0.3”,

4

3 回答 3

1

您正在传递它{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)
});
于 2021-04-19T17:18:50.010 回答
0

在尝试了所有组合之后,这个(使用正则表达式)一个工作。

When(/^keying the vessel identifier ([^"]*) on the search box$/, searchTerm => {
    Search.doSearch(searchTerm)
});
于 2021-04-19T16:56:28.387 回答
0

与往常一样,解释在文档中。

如果使用 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)。只会提取引号之间的文本。引号本身被丢弃。空引号对是有效的,将被匹配并作为空字符串传递给步骤代码。

于 2021-05-04T20:52:09.427 回答