在黃瓜紅寶石裏嘗試了一些新的東西,我遇到了他們的黃瓜表達式。黃瓜紅寶石 - 黃瓜表達式
我試過註冊參數:
require 'cucumber/cucumber_expressions/parameter_type'
require 'cucumber/cucumber_expressions/parameter_type_registry'
Cucumber::CucumberExpressions::ParameterTypeRegistry.new.define_parameter_type(Cucumber::CucumberExpressions::ParameterType.new(
'optional_not',
String,
/n't| not|/,
lambda {|s| String.new(s)}
))
Cucumber::CucumberExpressions::ParameterTypeRegistry.new.define_parameter_type(Cucumber::CucumberExpressions::ParameterType.new(
'string_in_double_quotes',
String,
/"[^"]*"/,
lambda {|s| String.new(s)}
))
但是,當我有一個步驟定義,如:
Given "{string_in_double_quotes} does{optional_not} work" do |thing, invert|
invert = invert.gsub(' ', '')
if invert == 'n\'t' or invert == 'not'
# Something here
else
# Something here
end
end
不匹配Given "the expression" does work
或Given "the expression" does not work
- 這應該和簡單的來返回步驟片段
有誰知道我在做什麼錯?
編輯
原來,基本的「INT」黃瓜表達不工作或者,這應該是內置的。
Given "I want {int} potatoes" do |number|
puts "#{number} potatoes"
end
不匹配And I want 7 potatoes
,作爲一個例子。
使用:
- 黃瓜v3.0.0.pre.1
- 黃瓜表達式V3.0.0
- 紅寶石V2.4.1
對於Ruby,Cucumber表達式可能實際上尚未實現。 [添加支持問題](https://github.com/cucumber/cucumber-ruby/issues/1002)仍處於打開狀態。 –