Надеюсь, я смогу объяснить свою проблему достаточно ясно, чтобы другие могли понять, поехали, представьте, что у меня есть два следующих гипотетических сценария:
Scenario: Filter sweets by king size and nut content
Given I am on the "Sweet/List" Page
When I filter sweets by
| Field | Value |
| Filter.KingSize | True |
| Filter.ContainsNuts | False |
Then I should see :
| Value |
| Yorkie King Size |
| Mars King Size |
Scenario: Filter sweets by make
Given I am on the "Sweet/List" Page
When I filter sweets by
| Field | Value |
| Filter.Make | Haribo |
Then I should see :
| Value |
| Starmix |
Эти сценарии полезны, потому что я могу добавить столько строк, сколько строк поля / Value и Then Value, как мне нравится, без изменения связанных шагов скомпилированного теста. Однако сценарии копирования / вставки для различных тестов фильтров станут повторяющимися и займут много кода - чего я бы хотел избежать. В идеале я хотел бы создать схему сценария и сохранить динамический характер, который у меня есть с тестами выше, однако, когда я пытаюсь это сделать, я сталкиваюсь с проблемой определения таблицы примеров, я не могу добавлять новые строки по своему усмотрению, потому что это было бы новый тестовый экземпляр, сейчас у меня это:
Scenario Outline: Filter Sweets
Given I am on the <page> Page
When I filter chocolates by
| Field | Value |
| <filter> | <value> |
Then I should see :
| Output |
| <output> |
Examples:
| page | filter | value | output |
| Sweet/List | Filter.Make | Haribo | Starmix |
Итак, у меня проблема с возможностью динамического добавления строк в мой фильтр и ожидаемых данных при использовании схемы сценария. Кто-нибудь знает способ обойти это? Должен ли я подходить к этому с другой стороны?
Обходной путь может быть примерно таким:
Then I should see :
| Output |
| <x> |
| <y> |
| <z> |
Examples:
| x | y | z |
Но это не очень динамично .... надеетесь на лучшее решение? :)