Таблица многократного использования / общие примеры в огурце
Возможно ли для нескольких сценариев использовать одну и ту же таблицу примеров?
Так что вместо того, чтобы иметь что-то вроде следующего:
Scenario Outline: First Scenario
Given I am viewing "<url>"
Then I assert that the current URL "<url>"
Examples:
| url |
| https://google.com |
| https://twitter.com|
Scenario Outline: Second Scenario
Given I am viewing "<url>" with route "</contactus>"
Then I assert that "<url>" contains "contactus"
Examples:
| url |
| https://google.com |
| https://twitter.com|
Я могу сделать что-то вроде
Scenario Outline: Reusable Example
Examples:
| url |
| https://google.com |
| https://twitter.com|
Scenario: First Scenario
Given I am viewing "<url>"
Then I assert that the current URL "<url>"
Scenario: Second Scenario
Given I am viewing "<url>" with route "</contactus>"
Then I assert that "<url>" contains "contactus"
Я нашел похожий вопрос в Stackru, но объединение всех моих сценариев в одном сценарии не вариант для меня. Поскольку этот вопрос был опубликован в 2014 году, возможно, в рамках произошли некоторые улучшения, о которых я не знаю:D
Заранее спасибо.
2 ответа
Вы можете использовать qaf-gherkin, где вы можете перемещать примеры во внешний файл и использовать его с одним или несколькими сценариями. С qaf ваш файл функций может выглядеть так:
Scenario Outline: First Scenario
Given I am viewing "<url>"
Then I assert that the current URL "<url>"
Examples:{'datafile':'resources/testdata.txt'}
Scenario Outline: Second Scenario
Given I am viewing "<url>" with route "</contactus>"
Then I assert that "<url>" contains "contactus"
Examples:{'datafile':'resources/testdata.txt'}
И ваш файл данных будет выглядеть так:
url
https://google.com
https://twitter.com
Вот ссылка.
Вы можете использовать фон для указания шагов, которые одинаковы для всех сценариев. (Посмотрите на ссылку для ограничений)
Файл объекта может выглядеть следующим образом
Feature: use of reusable Given
Background: Reusable Example
Given I am viewing url
| https://google.com |
And a search phrase is entered in the search field
Scenario: First Scenario
And step for first scenario
Scenario: Second Scenario
And step for second scenario
реализация кода клея для Given
@Given("^I am viewing url$")
public void iAmViewing(List<String> url) throws Throwable {
System.out.println("url = " + url);
}
редактировать После того, как вопрос был обновлен Scenario Outline
может работать для обоих примеров.
Feature: use of example
Scenario Outline: First Scenario
Given I am viewing "<host>" with path "<path>"
Then I assert that the current URL is "<host><path>"
Examples:
| host | path |
| https://google.com | / |
| https://twitter.com | /contactus |