如何在 Specflow 中的同一个特征文件中提供多个数据作为输入

How to give multiple data as input in the same feature file in Specflow

我在应用程序中有一个表单需要填写数据,例如创建员工。 需要填写员工代码、姓名、地址、银行详细信息等详细信息。 我创建了一个包含 4 个场景的功能文件:

  1. 员工个人详细信息
  2. 员工地址
  3. 银行详细信息
  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 更小且更易于阅读,同时为您提供了很大的数据输入灵活性。