希望我能够清晰地解释我的问题,让其他人能够理解。以下是两个假设情景,希望您能想象一下:
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 |
这些场景很有用,因为我可以添加任意多个Field/Value和Then Value的When行,而不改变关联编译测试步骤。然而,将场景复制/粘贴到不同的过滤器测试中将变得重复并占用大量代码 - 这是我想避免的。理想情况下,我希望创建一个场景大纲,并保持上面测试的动态性,但是当我尝试这样做时,我遇到了一个问题:定义示例表时我不能根据需要添加新行,因为那将是一个新的测试实例,目前我的代码如下:
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 |
但这并不是很动态... 希望有更好的解决方案?:)