【问题标题】:Is it posible to add a list of data inside a data-table or step in Cucumber?是否可以在 Cucumber 中的数据表或步骤中添加数据列表?
【发布时间】:2013-10-24 22:53:33
【问题描述】:
    Scenario Outline: list of data in data table
       Given I have <numbers>
        When I sum its
        Then I should see <result>
    Examples:
       | numbers | result |
       | 1 2     | 3      |
       | 1 2 3   | 6      |
       | 1 2 3 4 | 10     |

    Scenario: list of data in a step
       Given I have numbers: 1, 2, 3
        When I sum its
        Then I should see 6

请注意,我在第一个示例中使用空格来添加数字,而在第二个示例中我使用逗号(,)。

【问题讨论】:

    标签: ruby-on-rails rspec cucumber bdd


    【解决方案1】:

    是的,这两种方法都没有问题。

    https://github.com/cucumber/cucumber/wiki/Scenario-Outlines 中所述,Scenario Outline 仅使用参数表值的文本替换来生成一组场景。根据我所做的有限测试,Cucumber 似乎会忽略表条目中的前导空格和尾随空格,因此,numbers 值将是字符串“1 2”、“1 2 3”和“1 2 3 4” " 在这种情况下。

    一旦生成了各个场景,就会像对待任何其他场景一样对待它们,并使用标准模式匹配进行匹配。

    唯一需要注意的是,您的步骤定义需要考虑您使用的任何语法。在你的情况下,虽然你可以使用:

    Given I have 1 2 3
    

    Given I have numbers: 1, 2, 3
    

    您的模式需要适应您使用的任何格式。

    至于特殊字符,包括单引号和双引号,我认为几乎可以使用任何东西。唯一会变得棘手的部分是,如果您想在 Given 行中包含行尾字符或在数据表中包含垂直条。请记住,就您的场景和步骤定义而言,“这只是文本”。您只需要确保您的模式与您的示例相匹配。

    【讨论】:

    • 谢谢。如果我对字符串使用双引号,例如:Given I have "1,2,3" 或 Given I have "1","2","3" 哪个更好?
    • 如果我在数据表中使用双引号和逗号,例如:|数字 | | 1,2,3 |或 |数字 | | "1","2","3" |或 |数字 | | "1,2,3" |是否可以在数据表中使用逗号和带双引号的逗号?
    • “哪个更好”的问题并不适合 StackOverflow。
    • 根据现有答案,可以在数据表中使用逗号。请参阅有关引号的更新答案。
    猜你喜欢
    • 2018-12-18
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    相关资源
    最近更新 更多