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)为例

  1. 它不会采用正则表达式,所以它必须是字符串
  2. 参数和参数类型之间不能有 space。

要制作您自己的,请使用 addTransform 功能。

一个例子:

defineSupportCode(function({addTransform}){

    addTransform({
        captureGroupRegexps: ['\d+(?:|\.\d{2})'],
        transformer: JSON.parse,
        typeName: 'money'
    });
});