Ruby 黄瓜:何时使用标签/挂钩与背景

Ruby 黄瓜:何时使用标签/挂钩与背景,ruby,cucumber,gherkin,Ruby,Cucumber,Gherkin,我想知道,与使用标签和挂钩相比,在cucumber中使用背景是否有一个好的论据 在测试开始之前让一个登录的用户可以这样做: Background: Given that I am logged in Scenario: Lorem ipsum sit amet dolor [...] @login Scenario: Lorem ipsum sit amet dolor [...] 或者像这样: Background: Given that I am logged in Scenar

我想知道,与使用标签和挂钩相比,在cucumber中使用背景是否有一个好的论据

在测试开始之前让一个登录的用户可以这样做:

Background:
  Given that I am logged in
Scenario: Lorem ipsum sit amet dolor
[...]
@login
Scenario: Lorem ipsum sit amet dolor
[...]
或者像这样:

Background:
  Given that I am logged in
Scenario: Lorem ipsum sit amet dolor
[...]
@login
Scenario: Lorem ipsum sit amet dolor
[...]
+


你知道什么时候应该偏爱其中一个吗?

肯定是前者(IMHO),因为它捕获了通用可读的小黄瓜特征文件中的所有内容。这些标记实际上只是为了帮助运行者——它们是实现级别的。您在这里描述的内容是正在发生的事情描述的一部分。

Background
在为您的场景提供通用的客户可读(非技术)背景时非常有用。如果您希望在功能的文本中明确说明此初始化,那么使用它是值得的

但有时拆卸(和设置)逻辑是一个实现细节,在
之前
之后
周围
钩子中实现(因为您的规范的读者不需要知道这些技术方面的事情)

小结:如果您想告知读者您的后台规范,请使用后台,当后台是一个实现细节时,请使用挂钩

在你的例子中,背景是最好的选择