场景与场景大纲
Scenario vs. Scenario Outline
背景:
我目前正在为 Symfony2 网页编写性能测试 (Mink/Selenium)。我有很多例子可以参考,实际编写它们应该没问题。步骤定义已经写好了。
但是,在示例中,它们有时定义 Scenario:
,有时定义 Scenario Outline:
问题:
这两种定义测试的方式有什么区别?
场景就是这样。
场景大纲使用占位符来加快测试速度。
Copying and pasting scenarios to use different values can quickly become tedious and repetitive:
Scenario: Eat 5 out of 12
Given there are 12 cucumbers
When I eat 5 cucumbers
Then I should have 7 cucumbers
Scenario: Eat 5 out of 20
Given there are 20 cucumbers
When I eat 5 cucumbers
Then I should have 15 cucumbers
Scenario Outlines allow us to more concisely express these examples through the use of a template with placeholders
Scenario Outline: Eating
Given there are <start> cucumbers
When I eat <eat> cucumbers
Then I should have <left> cucumbers
Examples:
| start | eat | left |
| 12 | 5 | 7 |
| 20 | 5 | 15 |
The Scenario Outline steps provide a template which is never directly run. A Scenario Outline is run once for each row in the Examples section beneath it (except for the first header row).
Writing Features 指南中有更多内容。
背景:
我目前正在为 Symfony2 网页编写性能测试 (Mink/Selenium)。我有很多例子可以参考,实际编写它们应该没问题。步骤定义已经写好了。
但是,在示例中,它们有时定义 Scenario:
,有时定义 Scenario Outline:
问题:
这两种定义测试的方式有什么区别?
场景就是这样。
场景大纲使用占位符来加快测试速度。
Copying and pasting scenarios to use different values can quickly become tedious and repetitive:
Scenario: Eat 5 out of 12 Given there are 12 cucumbers When I eat 5 cucumbers Then I should have 7 cucumbers Scenario: Eat 5 out of 20 Given there are 20 cucumbers When I eat 5 cucumbers Then I should have 15 cucumbers
Scenario Outlines allow us to more concisely express these examples through the use of a template with placeholders
Scenario Outline: Eating Given there are <start> cucumbers When I eat <eat> cucumbers Then I should have <left> cucumbers Examples: | start | eat | left | | 12 | 5 | 7 | | 20 | 5 | 15 |
The Scenario Outline steps provide a template which is never directly run. A Scenario Outline is run once for each row in the Examples section beneath it (except for the first header row).
Writing Features 指南中有更多内容。