2017-02-24 82 views
1

背景與CucumberJS 2.0.0+

我想我最好弄清楚CucumberJS 2.0.0黃瓜表情,頗有幾分自1.3.0改變。

黃瓜表達式可以在步驟的定義可以用來代替正則表達式:

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

相反的:

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

我們想使用,似乎是CJS2的一部分黃瓜表達式,使我們的步驟定義更具可讀性(在某些地方,我們有相當多的正則表達式會阻止初學者),我們無法弄清楚如何去做。

的問題

參照documentation黃瓜表達式,一切似乎罰款,但ParameterRegistry類是我的代碼中不明確的。

ParameterRegistry is not a constructor

基本上,如果有人在CucumberJS社會設法得到這個工作,並會幫助我開始使用黃瓜表達式我不知道。

回答

2

我找到了一種方法來做到這一點:

When('I search for {searchTerm:stringInDoubleQuotes}', function (searchTerm)作爲一個例子。

  1. 它不會需要一個正則表達式,所以它必須是一個字符串
  2. 你不能有參數,參數類型之間的空間。

要自己創建,請使用addTransform函數。

一個例子:

defineSupportCode(function({addTransform}){ 

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

對於任何人誰懷疑, 「addTransform」 似乎已更名爲 「defineParameterType」,參見[從今年8更新日誌](https://github.com/cucumber/cucumber -js/blob/052cd2069ad61003974d626406655e8452e27e34/CHANGELOG.md#300-2017-08-08)。 –