在黄瓜.feature文件中传递数组值

时间:2016-06-14 19:47:45

标签: ruby-on-rails cucumber automated-tests gherkin

我想将数组值作为参数从cucumber .feature文件传递,所以我可以从步骤定义文件中访问它:

我使用的是这种格式:

Examples:
|r1|t1|
|abc|[aa,bb,cc]| 

但我收到了一个错误 undefined method每个'for“[aa,bb,cc]”:String(NoMethodError)`

是否可以从.feature文件传递数组?

2 个答案:

答案 0 :(得分:6)

我认为你不需要方括号。

When I pass this array "aa,bb,cc"

你必须拆分你的字符串。

When(/I pass this array "([^"]*)"$/) do |array|
  array.split(',').each{|entry| do something }
end

注意:如果条目周围有空格,您可能想要删除条目{|entry| puts entry.strip }

答案 1 :(得分:0)

您无需在示例中放置方括号。只需将值写成逗号分隔即可,例如

When I expect the messages to contain a,b,c,d

然后在您的步骤定义文件中,使用以下代码:

  When(/^I expect the messages to contain (.*)+$/,
  { timeout },
  async rules => {
    const rulesArray = rules.split(',');
    rulesArray.forEach(rule => {
      ## write your logic
    });
  }
);