【问题标题】:Cucumber Expressions with CucumberJS 2.0.0+CucumberJS 2.0.0+ 的黄瓜表达式
【发布时间】:2017-02-24 13:17:16
【问题描述】:

背景

我正在尽力找出 CucumberJS 2.0.0,自 1.3.0 以来发生了很大变化。

可以在步骤定义中使用黄瓜表达式来代替正则表达式:

When(/^I search for "{searchTerm}"$/, function (searchTerm) {

代替:

When(/^I search for "([^"]*)"$/, function (searchTerm) {

我们想使用似乎是 CJS2 一部分的 Cucumber 表达式,以使我们的步骤定义更具可读性(在某些地方,我们有相当多的正则表达式会使初学者感到困惑),但我们想不通知道怎么做。

问题

参考 Cucumber Expressions 的 documentation,一切似乎都很好,但我的代码中未定义 ParameterRegistry 类。

ParameterRegistry is not a constructor

基本上,我想知道 CucumberJS 社区中是否有人设法让它工作并帮助我开始使用 Cucumber 表达式。

【问题讨论】:

    标签: javascript automated-tests cucumber bdd cucumberjs


    【解决方案1】:

    我找到了办法:

    When('I search for {searchTerm:stringInDoubleQuotes}', function (searchTerm) 为例。

    1. 它不需要正则表达式,所以它必须是一个字符串
    2. 参数和参数类型之间不能有空格。

    要自己制作,请使用addTransform 函数。

    一个例子:

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

    【讨论】:

    • 对于任何想知道的人,“addTransform”似乎已重命名为“defineParameterType”,有关详细信息,请参阅this changelog from august
    猜你喜欢
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多