我想将数组值作为参数从cucumber .feature文件传递,所以我可以从步骤定义文件中访问它:
我使用的是这种格式:
Examples:
|r1|t1|
|abc|[aa,bb,cc]|
但我收到了一个错误
undefined method
每个'for“[aa,bb,cc]”:String(NoMethodError)`
是否可以从.feature文件传递数组?
答案 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
});
}
);