(黄瓜)Background和Before标签之间的区别是什么

时间:2016-06-02 07:14:14

标签: tags cucumber

据我所知,@Before钩子在每个场景之前都在执行,现在我已经遇到了Background标签,但在我看来它与@Before标签具有完全相同的功能,除了它自己的步骤。 任何人都可以解释现实生活中的差异吗?当我必须使用Background而不是Before?

1 个答案:

答案 0 :(得分:5)

根据Cucumber documentation,以下是Before的作用:

  

在每个场景的第一步之前运行钩子之前。他们   将按照他们注册的顺序运行。

以下是Background的作用:

  

Background允许您在单个功能中向场景添加一些上下文。背景非常类似于包含a的场景   步数。不同之处在于运行时。背景是   在你的每个场景之前运行,但在你的任何一个挂钩之后运行。

事实上,正如你已经注意到的那样,它们的结构有点不同。 通常的做法是按如下方式使用它们:

  • 在为您的方案提供客户可读的前置条件时使用Background
  • 在场景之前必须进行一些技术设置时使用Before

但这里要理解的主要是操作的顺序:

在挂钩1之前 - >在Hook 2之前 - > ... - >背景 - >方案

它们只代表不同级别的前提条件。