我试图了解如何将逻辑上的场景组合在一起。假设我在填写订单后有一个功能,例如查看购物车。
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
现在我想进一步......比如删除一些物品。我不想制作一个全新的功能文件。我只是想创建一个新的场景来推崇上面这个。如何添加另一个场景,只是从这个场景开始的地方开始?
答案 0 :(得分:1)
最接近你要找的是background:
Background允许您在单个功能中向场景添加一些上下文。背景很像包含许多步骤的场景。不同之处在于运行时。后台在每个场景之前运行,但在任何After 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
请注意,这两种方案都是独立的,尽管它们共享一个共同的背景(一组初始步骤)。
我通常在测试中使用Background,尽管我只使用Givens。从我的角度来看,背景应该呈现一个状态而不是用户执行的动作(尽管这只是我的意见)。我知道在背景中使用when
进行了测试,这是一种允许的做法。
希望它有所帮助。