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