CucumberJS 2.0.0+ 的黄瓜表达式
Cucumber Expressions with CucumberJS 2.0.0+
背景
我正在尽最大努力了解 CucumberJS 2.0.0,自 1.3.0 以来发生了很多变化。
Cucumber 表达式可用于步骤定义中以替换正则表达式:
When(/^I search for "{searchTerm}"$/, function (searchTerm) {
而不是:
When(/^I search for "([^"]*)"$/, function (searchTerm) {
我们想使用 Cucumber 表达式,它似乎是 CJS2 的一部分,使我们的步骤定义更具可读性(在某些地方,我们有相当多的正则表达式会让初学者感到困惑)并且我们可以'不知道该怎么做。
问题
参考 Cucumber 表达式的 documentation,一切似乎都很好,但是 ParameterRegistry
class 在我的代码中未定义。
ParameterRegistry is not a constructor
基本上我想知道 CucumberJS 社区中是否有人设法让它工作并帮助我开始使用 Cucumber 表达式。
我找到了一种方法:
When('I search for {searchTerm:stringInDoubleQuotes}', function (searchTerm)
为例
- 它不会采用正则表达式,所以它必须是字符串
- 参数和参数类型之间不能有 space。
要制作您自己的,请使用 addTransform
功能。
一个例子:
defineSupportCode(function({addTransform}){
addTransform({
captureGroupRegexps: ['\d+(?:|\.\d{2})'],
transformer: JSON.parse,
typeName: 'money'
});
});
背景
我正在尽最大努力了解 CucumberJS 2.0.0,自 1.3.0 以来发生了很多变化。
Cucumber 表达式可用于步骤定义中以替换正则表达式:
When(/^I search for "{searchTerm}"$/, function (searchTerm) {
而不是:
When(/^I search for "([^"]*)"$/, function (searchTerm) {
我们想使用 Cucumber 表达式,它似乎是 CJS2 的一部分,使我们的步骤定义更具可读性(在某些地方,我们有相当多的正则表达式会让初学者感到困惑)并且我们可以'不知道该怎么做。
问题
参考 Cucumber 表达式的 documentation,一切似乎都很好,但是 ParameterRegistry
class 在我的代码中未定义。
ParameterRegistry is not a constructor
基本上我想知道 CucumberJS 社区中是否有人设法让它工作并帮助我开始使用 Cucumber 表达式。
我找到了一种方法:
When('I search for {searchTerm:stringInDoubleQuotes}', function (searchTerm)
为例
- 它不会采用正则表达式,所以它必须是字符串
- 参数和参数类型之间不能有 space。
要制作您自己的,请使用 addTransform
功能。
一个例子:
defineSupportCode(function({addTransform}){
addTransform({
captureGroupRegexps: ['\d+(?:|\.\d{2})'],
transformer: JSON.parse,
typeName: 'money'
});
});