据我所知,@Before钩子在每个场景之前执行,现在我已经遇到了Background标签,但在我看来它与@Before标签具有完全相同的功能,除了它自己的步骤.任何人都可以解释现实生活中的差异吗?什么时候我必须使用Background而不是Before?
根据Cucumber文档,这是做什么的Before:
在每个场景的第一步之前运行钩子之前.它们的运行顺序与注册顺序相同.
这是做什么的Background:
背景允许您在单个功能中向场景添加一些上下文.背景很像包含许多步骤的场景.不同之处在于运行时.后台在每个场景之前运行,但在任何Before Hooks之后运行.
事实上,正如你已经注意到的那样,它们的结构有点不同.通常的做法是使用它们如下:
Background时您提供客户可读的先决条件,以您的场景Before在场景之前必须进行一些技术设置时使用但这里要理解的主要是操作的顺序:
在挂钩1 - >挂钩2之前 - > ... - >背景 - >场景
它们只代表不同级别的前提条件.