只是从Gherkins开始,我需要为Rest API编写Gherkins方案。
[在某些情况下,用户输入客户ID和订单ID,其余服务根据一些检查将订单ID与客户ID链接在一起。然后,它返回订单的完整详细信息。
我引用的小黄瓜情况如下:
Scenario: Associate an order to customer
When User provides order to attach to customer
Then User should get the associated order details
现在,如果客户或订单ID无效,则剩余呼叫将响应并显示相应的错误消息。
我应该使用GIVEN来确保存在客户和订单ID吗?
给出:具有ID“ abc”的客户退出与ID为“ bcd”的订单退出]
这里的GIVEN有什么意义吗?编写此示例方案的最佳方法是什么?
是,您应该提供创建客户和订单的Given
。为此,您实际上需要两个步骤,一个步骤是创建客户,而第二步骤来创建订单:
Scenario: Associate an order to customer
Given a customer exists
And an order exists
When User provides order to attach to customer
我认为您实际上需要两个方案。一个断言客户和订单彼此关联,另一个断言细节:
Scenario: Associate an order to customer
Given a customer exists
And an order exists
When User provides order to attach to customer
Then the customer should be associated with the order
Scenario: Retrieving the order details after associating a customer to an order
Given a customer exists
And the following order exists:
| Field | Value |
| A | 1 |
| B | 2 |
| C | 3 |
When User provides order to attach to customer
Then User should receive the following order information:
| Field | Value |
| A | 1 |
| B | 2 |
| C | 3 |
现在,每个测试只有一个失败的原因。如果订单没有与客户相关联,而是以任何方式返回订单信息,那么与客户与订单相关联的场景将失败。断定订单明细的方案将继续通过。这可以帮助您调试测试失败。
此外,如果返回的订单详细信息的要求发生了变化,但是将客户与订单相关联的要求没有发生变化,则有关检索订单详细信息的方案将失败,而将客户与该订单相关联的方案将会失败。继续过去。同样,这有助于缩小应用程序的故障点。