Да, вы должны предоставить 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 |
Теперь у каждого теста есть только одна причина для сбоя. Если заказ не связывается с клиентом, но в любом случае возвращает информацию о заказе, сценарий, связанный с клиентом, связанным с заказом, не будет выполнен. Сценарий утверждения деталей заказа будет продолжать проходить. Это поможет вам отладить тестовый сбой.
Кроме того, если изменяются требования к возвращаемым деталям заказа, но не изменяются требования по связыванию клиента с заказом, сценарий получения сведений о заказе будетсбой, в то время как сценарий связывания клиента с заказом продолжает проходить. Опять же, это помогает сузить точку сбоя в приложении.