据我所知,@Before钩子在每个场景之前都在执行,现在我已经遇到了Background标签,但在我看来它与@Before标签具有完全相同的功能,除了它自己的步骤。 任何人都可以解释现实生活中的差异吗?当我必须使用Background而不是Before?
答案 0 :(得分:5)
根据Cucumber documentation,以下是Before
的作用:
在每个场景的第一步之前运行钩子之前。他们 将按照他们注册的顺序运行。
以下是Background
的作用:
Background允许您在单个功能中向场景添加一些上下文。背景非常类似于包含a的场景 步数。不同之处在于运行时。背景是 在你的每个场景之前运行,但在你的任何一个挂钩之后运行。
事实上,正如你已经注意到的那样,它们的结构有点不同。 通常的做法是按如下方式使用它们:
Background
Before
但这里要理解的主要是操作的顺序:
在挂钩1之前 - >在Hook 2之前 - > ... - >背景 - >方案强>
它们只代表不同级别的前提条件。