(Cucumber) Background和Before标签有什么区别?

9
据我所知,@Before钩子在每个场景之前执行,现在我遇到了Background标签,但是它似乎具有与@Before标签完全相同的功能,只不过它有自己的步骤。 有人能解释一下实际应用中的区别吗?我什么时候应该使用Background而不是Before呢?
1个回答

12
根据Cucumber文档Before的作用如下:

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

Background的作用如下:

Background允许您为单个功能中的场景添加一些上下文。背景与包含多个步骤的场景非常相似。不同之处在于其运行时间。在任何Before Hooks之后但在每个场景之前运行背景。

实际上,正如您已经注意到的那样,它们的结构略有不同。通常的做法是按以下方式使用它们:
  • 当您要提供客户可读的先决条件给您的场景时,请使用Background
  • 当您必须在场景之前进行某些技术设置时,请使用Before
但这里需要理解的主要内容是操作的顺序:

Before Hook 1 -> Before Hook 2 -> ... -> Background -> Scenario

它们只是表示不同级别的先决条件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接