如何将多个参数传递给Cucumber步骤?

时间:2014-05-28 10:41:09

标签: ruby cucumber

我想从步骤中传递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个步骤编写了一个单独的正则表达式,但是为了优化我尝试这种方法。

期待所有快乐的想法:)

1 个答案:

答案 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