如何在 Specflow 中的同一个特征文件中提供多个数据作为输入
How to give multiple data as input in the same feature file in Specflow
我在应用程序中有一个表单需要填写数据,例如创建员工。
需要填写员工代码、姓名、地址、银行详细信息等详细信息。
我创建了一个包含 4 个场景的功能文件:
- 员工个人详细信息
- 员工地址
- 银行详细信息
- 等等
5-10 名员工的字段相同,如何传递数据?问题是创建时需要填写 15-20 个字段。我尝试使用 Example 关键字并且行长度增加,这使得滚动和搜索变得困难。有没有其他方法可以将它们作为输入?
我怀疑我们能否为每个场景提供 4 个示例文件。是真的吗?
请帮忙提供更好的方法。
这是显示我正在谈论的示例文本的屏幕截图:
你必须决定什么更重要。
如果能够看到测试之外正在处理的数据更重要,那么您将不得不硬着头皮处理测试文件中的大量文本。
如果保持测试文件简洁更为重要,那么您可以将数据创建为某种数据类型(例如列表、字典),并在测试的第一行将数据分配给变量然后您将在其余测试中使用它。
不要在示例中包含所有字段 table,而是关注与当前场景相关的字段。
例如,关于个人详细信息的场景可能如下所示:
Scenario Outline: Entering personal details when creating an employee
Given the user is creating a new employee
When the user enters the employee personal details:
| Field | Value |
| First Name | <First Name> |
| Last Name | <Last Name> |
| Date of Birth | <Date of Birth> |
And the user enters the employee address
And the user enters the employee banking details
And the user saves the new employee
Then ...
Examples:
| First Name | Last Name | Date of Birth |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
步骤 When the user enters the employee personal details:
包含与输入个人详细信息相关的字段。其他输入员工地址和银行详细信息的步骤可以使用通用数据,只要输入的数据满足业务规则即可。
同样,想象一下输入地址的场景:
Scenario Outline: Entering new employee address
Given the user is creating a new employee
When the user enters the personal details for the new employee
And the user enters the employee address:
| Field | Value |
| Line 1 | <Line 1> |
| Line 2 | <Line 2> |
| City | <City> |
| State | <State> |
| Postal Code | <Postal Code> |
And the user enters the employee banking details
And the user saves the new employee
Then ...
Examples:
| Line 1 | Line 2 | City | State | Postal Code |
| ... | ... | ... | ... | ... |
| ... | ... | ... | ... | ... |
| ... | ... | ... | ... | ... |
这使得每个场景的示例 table 更小且更易于阅读,同时为您提供了很大的数据输入灵活性。
我在应用程序中有一个表单需要填写数据,例如创建员工。 需要填写员工代码、姓名、地址、银行详细信息等详细信息。 我创建了一个包含 4 个场景的功能文件:
- 员工个人详细信息
- 员工地址
- 银行详细信息
- 等等
5-10 名员工的字段相同,如何传递数据?问题是创建时需要填写 15-20 个字段。我尝试使用 Example 关键字并且行长度增加,这使得滚动和搜索变得困难。有没有其他方法可以将它们作为输入? 我怀疑我们能否为每个场景提供 4 个示例文件。是真的吗?
请帮忙提供更好的方法。
这是显示我正在谈论的示例文本的屏幕截图:
你必须决定什么更重要。
如果能够看到测试之外正在处理的数据更重要,那么您将不得不硬着头皮处理测试文件中的大量文本。
如果保持测试文件简洁更为重要,那么您可以将数据创建为某种数据类型(例如列表、字典),并在测试的第一行将数据分配给变量然后您将在其余测试中使用它。
不要在示例中包含所有字段 table,而是关注与当前场景相关的字段。
例如,关于个人详细信息的场景可能如下所示:
Scenario Outline: Entering personal details when creating an employee
Given the user is creating a new employee
When the user enters the employee personal details:
| Field | Value |
| First Name | <First Name> |
| Last Name | <Last Name> |
| Date of Birth | <Date of Birth> |
And the user enters the employee address
And the user enters the employee banking details
And the user saves the new employee
Then ...
Examples:
| First Name | Last Name | Date of Birth |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
步骤 When the user enters the employee personal details:
包含与输入个人详细信息相关的字段。其他输入员工地址和银行详细信息的步骤可以使用通用数据,只要输入的数据满足业务规则即可。
同样,想象一下输入地址的场景:
Scenario Outline: Entering new employee address
Given the user is creating a new employee
When the user enters the personal details for the new employee
And the user enters the employee address:
| Field | Value |
| Line 1 | <Line 1> |
| Line 2 | <Line 2> |
| City | <City> |
| State | <State> |
| Postal Code | <Postal Code> |
And the user enters the employee banking details
And the user saves the new employee
Then ...
Examples:
| Line 1 | Line 2 | City | State | Postal Code |
| ... | ... | ... | ... | ... |
| ... | ... | ... | ... | ... |
| ... | ... | ... | ... | ... |
这使得每个场景的示例 table 更小且更易于阅读,同时为您提供了很大的数据输入灵活性。