是否应该在 Gherkin 中验证屏幕上可见的所有字段?
Should all fields that are visible on a screen be validated in Gherkin?
我们正在为我们的应用程序创建 Gherkin 功能文件以创建可执行规范。目前我们有这样的文件:
Given product <type> is found
When the product is clicked
Then detailed information on the product appears
And the field text has a value
And the field price has a value
And the field buy is available
我们想知道验证字段是否在屏幕上可见的整个 and
关键字列表是否可行,或者我们是否应该将其缩短为 'validate input'。
我们有一个类似的案例,因为我们的服务可以 return 为每个我们可以验证的案例提供很多 10 的元素。我们不验证每个交互的每个元素,我们只测试与测试用例相关的元素。
为了更容易维护和切换我们正在使用的元素,我们使用场景大纲和示例表。
Scenario Outline: PO Boxes correctly located
When we search in the USA for "<Input>"
Then the address contains
| Label | Text |
| PO Box | <PoBox> |
| City name | <CityName> |
| State code | <StateCode> |
| ZIP Code | <ZipCode> |
| +4 code | <ZipPlus4> |
Examples:
| ID | Input | PoBox | CityName | StateCode | ZipCode |
| 01 | PO Box 123, 12345 | PO Box 123 | Boston | MA | 12345 |
| 02 | PO Box 321, Whitefish | PO Box 123 | Whitefish | MN | 54321 |
通过这种方式,我们有一个通用步骤 "the address contains",它使用 'Label' 和 'Text' 来测试各个元素。这是一种测试大量潜在组合的简洁方法 - 但它可能取决于您的个人用例 - 所有字段的重要性。
你只需要验证那些提供商业价值的,这可能是所有的。我会避免使用像 "field" 这样的技术术语,因为它与行为无关。 Al Mills 非常适合使用这些表格。
我会这样说:
Scenario Outline: Review product details
Given I find the product <Type>
When I select the product
Then detailed information on the product appears including
| Description | <Description> |
| Price | <Price> |
And I can buy the product
Examples:
| Type | Description | Price |
| Hose | Rubber Hose | 31.99 |
| Sprinkler | Rotating Sprinker | 12.99 |
我选择的词是行为或什么,而不是技术实现或如何。
我们正在为我们的应用程序创建 Gherkin 功能文件以创建可执行规范。目前我们有这样的文件:
Given product <type> is found
When the product is clicked
Then detailed information on the product appears
And the field text has a value
And the field price has a value
And the field buy is available
我们想知道验证字段是否在屏幕上可见的整个 and
关键字列表是否可行,或者我们是否应该将其缩短为 'validate input'。
我们有一个类似的案例,因为我们的服务可以 return 为每个我们可以验证的案例提供很多 10 的元素。我们不验证每个交互的每个元素,我们只测试与测试用例相关的元素。
为了更容易维护和切换我们正在使用的元素,我们使用场景大纲和示例表。
Scenario Outline: PO Boxes correctly located
When we search in the USA for "<Input>"
Then the address contains
| Label | Text |
| PO Box | <PoBox> |
| City name | <CityName> |
| State code | <StateCode> |
| ZIP Code | <ZipCode> |
| +4 code | <ZipPlus4> |
Examples:
| ID | Input | PoBox | CityName | StateCode | ZipCode |
| 01 | PO Box 123, 12345 | PO Box 123 | Boston | MA | 12345 |
| 02 | PO Box 321, Whitefish | PO Box 123 | Whitefish | MN | 54321 |
通过这种方式,我们有一个通用步骤 "the address contains",它使用 'Label' 和 'Text' 来测试各个元素。这是一种测试大量潜在组合的简洁方法 - 但它可能取决于您的个人用例 - 所有字段的重要性。
你只需要验证那些提供商业价值的,这可能是所有的。我会避免使用像 "field" 这样的技术术语,因为它与行为无关。 Al Mills 非常适合使用这些表格。
我会这样说:
Scenario Outline: Review product details
Given I find the product <Type>
When I select the product
Then detailed information on the product appears including
| Description | <Description> |
| Price | <Price> |
And I can buy the product
Examples:
| Type | Description | Price |
| Hose | Rubber Hose | 31.99 |
| Sprinkler | Rotating Sprinker | 12.99 |
我选择的词是行为或什么,而不是技术实现或如何。