2

我有一个字符串:I attach "dog.png", "cat.png", and "alphabet.doc"

这是我想要匹配的:

1. dog.png
2. cat.png
3. alphabet.doc

我可以这样做"([^"]*)",但是,字符串必须以“我附加”开头

这是我在步骤定义中的当前规则:/^I attach "([^"]*)"$/但这不起作用。

这是用于黄瓜/小黄瓜的,我可以想出一些办法,scan但我认为你不能在 cuke/gherkin 中使用它?

关于如何做到这一点的任何建议?

谢谢

4

2 回答 2

2

这似乎是使用#And 别名的好地方。

Given I attach dog.png
  And I attach cat.png
  And I attach alphabet.doc
...

或者,您可以将数据表用于简单的多行参数

于 2013-08-08T12:18:43.817 回答
2

如果您想在一个步骤中捕获可变数量的输入,我认为最好的选择是使用scan. 虽然您不能直接在步骤名称中使用 scan,但您可以捕获文件的完整列表,然后解析捕获的结果。

尝试以下步骤定义:

Given /^I attach (.*)$/ do |file_list|
  files = file_list.scan(/"(.+?)"/).flatten
  #=> ["dog.png", "cat.png", "alphabet.doc"]
end

这将创建要附加的文件数组。它可以处理 1 到无限个文件。

于 2013-08-10T23:23:24.003 回答