我有一个字符串:I attach "dog.png", "cat.png", and "alphabet.doc"
这就是我想要匹配的内容:
1. dog.png
2. cat.png
3. alphabet.doc
我可以通过"([^"]*)"
执行此操作,但是,字符串必须以“我附加”开头
这是我在步骤定义中的当前规则:/^I attach "([^"]*)"$/
但这不起作用。
这是黄瓜/小黄瓜,我可以用scan
来解决问题,但我不认为你可以在cuke / gherkin中使用它?
有关如何执行此操作的任何建议吗?
由于
答案 0 :(得分:2)
这似乎是使用#And别名的好地方。
Given I attach dog.png
And I attach cat.png
And I attach alphabet.doc
...
或者,您可以使用data tables轻松实现多行参数
答案 1 :(得分:2)
如果您想在一个步骤中捕获可变数量的输入,我认为最好的选择是使用scan
。虽然您无法在步骤名称中直接使用扫描,但您可以捕获完整的文件列表,然后解析捕获的结果。
尝试以下步骤定义:
Given /^I attach (.*)$/ do |file_list|
files = file_list.scan(/"(.+?)"/).flatten
#=> ["dog.png", "cat.png", "alphabet.doc"]
end
这将创建一个要附加的文件数组。它可以处理1到无限的文件。