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

Ana*_*van 1 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  |
Run Code Online (Sandbox Code Playgroud)

testfeature.rb

Then /^Enter Text (.*) (.*)$/ do |fieldId|value|
  @browser.text_field(:id, fieldId).set(value)
end
Run Code Online (Sandbox Code Playgroud)

这里fname/lname/mname取自Examples,我将页面元素传递给单引号字符串.

由于我是Ruby/Cucumber/Watir的新手,我无法理解应该如何处理它.

请注意 -
以前我为所有3个步骤编写了一个单独的正则表达式,但是为了优化我正在尝试这种方法.

期待所有快乐的想法:)

Dav*_*uth 8

Ruby块参数用,,而不是|.Ruby将解析你所写的内容

Then /^Enter Text (.*) (.*)$/ do |fieldId|
  value | @browser.text_field(:id, fieldId).set(value)
end
Run Code Online (Sandbox Code Playgroud)

要修复它,请使用逗号:

Then /^Enter Text (.*) (.*)$/ do |fieldId, value|
  @browser.text_field(:id, fieldId).set(value)
end
Run Code Online (Sandbox Code Playgroud)