我想从步骤中传递2个字符串,如下面的代码所示:
testfeature.feature
Then Enter Text 'fName' <fname>
Then Enter Text 'mName' <mname>
Then Enter Text 'lName' <lname>
Examples:
| fname | mname | lname |
| FnameTest | FnameTest | FnameTest |
testfeature.rb
Then /^Enter Text (.*) (.*)$/ do |fieldId|value|
@browser.text_field(:id, fieldId).set(value)
end
这里fname / lname / mname来自Examples,我将页面元素传递给单引号字符串。
由于我是Ruby / Cucumber / Watir的新手,我无法理解应该如何处理它。
请注意 -
以前我为所有3个步骤编写了一个单独的正则表达式,但是为了优化我尝试这种方法。
期待所有快乐的想法:)
答案 0 :(得分:7)
Ruby块参数用,
分隔,而不是|
。 Ruby将解析你所写的内容
Then /^Enter Text (.*) (.*)$/ do |fieldId|
value | @browser.text_field(:id, fieldId).set(value)
end
要解决此问题,请使用逗号:
Then /^Enter Text (.*) (.*)$/ do |fieldId, value|
@browser.text_field(:id, fieldId).set(value)
end