链接黄瓜场景

Chaining cucumber scenarios

我正在尝试了解如何从逻辑上将场景组合在一起。假设我有一个功能,例如在填写订单后查看购物车。

Given I am on the items page
When I click shop button
And I add an apple 
And I add a bananna
When I click next
Then I should see my cart summary 

现在我想更进一步.. 例如删除一些项目。我不想制作一个全新的功能文件。我只想创建一个引用上面这个场景的新场景。我怎样才能添加另一个场景,从这个场景停止的地方开始?

最接近您要查找的内容是 background:

Background allows you to add some context to the scenarios in a single feature. A Background is much like a scenario containing a number of steps. The difference is when it is run. The background is run before each of your scenarios but after any of your Before Hooks.

使用这个想法,你可以做如下事情:

Feature: Shopping cart testing

  Background:
    Given I am on the items page
    When I click shop button
    And I add an apple 
    And I add a bananna
    And I click next

  Scenario: Check shopping cart is present
    Then I should see my cart summary

  Scenario: I should be able to remove an item
    When I remove an item
    Then the shopping cart should have one item

请注意,尽管这两个场景具有共同的背景(一组初始步骤),但它们是独立的。

尽管我只使用 Givens,但我通常在测试中使用 Background。从我的角度来看,背景应该呈现一种状态,而不是用户执行的操作(尽管这只是我的观点)。我知道有一些测试在后台使用 when,这是允许的做法。

希望对您有所帮助。