I have a few tests like below:
Scenario Outline: Add two numebrs
Given two numbers <number_1> and <number_2>
When I add them
Then Result is <number_3>
Examples:
|number_1|number_2|number_3|
|2 |3 |5 |
|1 |2 |3 |
Scenario Outline: Update two numebrs
Given two numbers <number_1> and <number_2>
When I update them
Then Result is <number_3>
Examples:
|number_1|number_2|number_3|
|2 |3 |5 |
|1 |2 |3 |
For each test I should add the same table Examples.
Is any way to extract this table to use the same one for all tests?
The easiest solution that comes to my mind is combining both scenarios, extracting details to the examples table. So it would look like:
| number_1 | number_2 | operation | result |
You have another possibility.
Scenario: Add two numebrs
Given I have the matrix of numbers
When I add them
Then I would have the resulting vector.
Scenario: Update two numebrs
Given I have the matrix of numbers
When I update them
Then I would have the resulting vector.
Where "the matrix of numbers" and "the resulting vector" go to step defs file.
You can use qaf-gherkin where you can move examples in external file and use it with one or more scenario. With qaf your feature file may look like below:
Scenario Outline: Add two numebrs
Given two numbers <number_1> and <number_2>
When I add them
Then Result is <number_3>
Examples::{'datafile':'resources/testdata.txt'}
Scenario Outline: Update two numebrs
Given two numbers <number_1> and <number_2>
When I update them
Then Result is <number_3>
Examples:{'datafile':'resources/testdata.txt'}
And your datafile will look like:
#col.separator=|
number_1|number_2|number_3
2|3|5
1|2|3
Above is example of csv (charter separated values) data provider with | as seperator. You also can use different data providers to provide data from any of excel/xml/json/database.
来源:https://stackoverflow.com/questions/26716186/cucumber-scenario-outline-reusing-examples-table