【问题标题】:Get all items inside quotes in Cucumber Step Definition获取黄瓜步骤定义中引号内的所有项目
【发布时间】:2013-08-11 07:23:24
【问题描述】:

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

这是我想要匹配的:

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

我可以通过"([^"]*)" 来做到这一点,但是,字符串必须以“我附加”开头

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

这是用于黄瓜/小黄瓜的,我可以使用 scan 来解决问题,但我认为你不能在 cuke/gherkin 中使用它?

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

谢谢

【问题讨论】:

  • 你不认为你可以使用scan
  • @pguardiario 这些规则用于步骤定义

标签: ruby regex cucumber gherkin


【解决方案1】:

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

尝试以下步骤定义:

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

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

【讨论】:

  • 这很棒。我想知道如何在这种情况下使用扫描。我对 OP 有类似的需求,这有帮助。 +1
【解决方案2】:

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

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

或者,您可以使用data tables 轻松实现多行参数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多