8

我想知道与使用标签和钩子相比,在黄瓜中使用背景是否有很好的论据。

在测试开始之前拥有一个登录用户可能会像这样:

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

或像这样:

@login
Scenario: Lorem ipsum sit amet dolor
[...]

+

before(@login) do
  visit('/admin/login/testuser')
end

知道什么时候偏爱一个吗?

4

2 回答 2

9

Background当您为您的方案提供常见的客户可读(非技术)背景时很有用。如果您想在 Feature 的文本中明确说明此初始化,则值得使用它。

但有时拆解(和设置)逻辑是一个实现细节,并在Before,AfterAround钩子中实现(因为您的规范的读者不需要了解这些技术内容)。

摘要:如果您想告知读者您的背景规范,请使用背景,并在背景是实现细节时使用钩子。

在您的示例中,背景是最佳选择。

于 2012-04-03T14:01:28.767 回答
4

绝对是前者(恕我直言),因为它捕获了普遍可读的 Gherkin 功能文件中的所有内容。这些标签只是为了帮助跑步者——它们是实现级别的。您在此处描述的内容是对正在发生的事情的描述的一部分。

于 2012-04-03T13:58:04.597 回答