提问者:小点点

cucumber.feature文件中的传递数组值


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

我使用的格式是:

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

但是我得到了一个错误< code > undefined method each ' for“[aa,bb,cc]”:String(NoMethodError)`

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


共2个答案

匿名用户

我不认为你需要方括号。

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

你必须把你的字符串分开。

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

注意:您可能希望删除条目,以防它们周围有空格{|entry|将entry.strip}

匿名用户

您不需要在示例中添加方括号。只需将值写成逗号分隔,例如。

当我希望消息包含a、b、c、d时

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

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