在 Cucumber .feature 文件中传递数组值

Pass Array value in cucumber .feature file

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

我正在使用这种格式:

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

但是我遇到了一个错误 undefined method“[aa,bb,cc]”的每个:字符串 (NoMethodError)`

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

我认为您不需要方括号。

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 }

您不需要在示例中放置方括号。只需将值写为逗号分隔,例如

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
    });
  }
);