用小黄瓜编写脚本的最佳方法

问题描述 投票:2回答:1

只是从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有什么意义吗?编写此示例方案的最佳方法是什么?

testing integration-testing gherkin
1个回答
0
投票

是,您应该提供创建客户和订单的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     |

现在,每个测试只有一个失败的原因。如果订单没有与客户相关联,而是以任何方式返回订单信息,那么与客户与订单相关联的场景将失败。断定订单明细的方案将继续通过。这可以帮助您调试测试失败。

此外,如果返回的订单详细信息的要求发生了变化,但是将客户与订单相关联的要求没有发生变化,则有关检索订单详细信息的方案将失败,而将客户与该订单相关联的方案将会失败。继续过去。同样,这有助于缩小应用程序的故障点。

© www.soinside.com 2019 - 2024. All rights reserved.