使用黄瓜的水豚测试背景
Background in capybara tests using cucumber
正在学习新的 Rails 应用程序并为其编写一些测试。在编写测试时,遇到的问题是:
在使用黄瓜的水豚测试中写 'Background' 是什么意思?为什么我们要写 'Background' 呢?可以避免吗?
-> 跟测试数据库有关系吗?或者它是否用作 "Scenario"?
的数据库
Feature: User signup
As a user
I want to sign in
So I can use service features
**Background**:
Given user with "jack@daniles.com" email and "qwerty" password
Scenario: Signing in with correct credentials
When I go to sign in page
And I fill in "email" with "jack@daniles.com"
And I fill in "password" with "qwerty"
And I click "Login" button
Then I should see "Welcome, jack@daniles.com!"
Background 的重点是为几个场景定义一个共同的起点。如果您只有一个场景,那么它只能作为一种将事物分成几部分的方法才有意义。如果您熟悉单元测试框架,它类似于 xunit 系列中的设置方法,或者如果您使用 rspec,则类似于 before 块。出于 运行 测试的目的, background 中的内容也可以在场景中。它是一种重用机制。
背景与测试数据库没有直接关系。您 运行 来自黄瓜的所有步骤都可能会访问数据库。 background 用于在数据库中设置良好的起始状态。根据您的 cucumber/capybara 配置,数据库将在每个场景和背景之间重新设置 运行 在每个场景之前。
背景是 运行 在您的每个场景之前但在您的任何 Before Hooks 之后。
它用于编写黄瓜场景的 DRY 策略。一组 "prerequisite" 应该在 运行 实际测试用例之前执行的步骤。
例如。在检查仪表板或配置文件页面内容之前,用户必须登录。因此,登录覆盖将在 "Background" 部分内完成
那么你将有 2 个测试用例
背景:
// 获取用户登录
场景://访问仪表板页面.....
场景://访问个人资料页面....
更多信息https://github.com/cucumber/cucumber/wiki/Background
对于不同的用户组,您可以使用场景大纲
这是示例:
https://makandracards.com/makandra/18905-how-to-not-repeat-yourself-in-cucumber-scenarios
希望对您有所帮助!!!
正在学习新的 Rails 应用程序并为其编写一些测试。在编写测试时,遇到的问题是:
在使用黄瓜的水豚测试中写 'Background' 是什么意思?为什么我们要写 'Background' 呢?可以避免吗?
-> 跟测试数据库有关系吗?或者它是否用作 "Scenario"?
的数据库Feature: User signup
As a user
I want to sign in
So I can use service features
**Background**:
Given user with "jack@daniles.com" email and "qwerty" password
Scenario: Signing in with correct credentials
When I go to sign in page
And I fill in "email" with "jack@daniles.com"
And I fill in "password" with "qwerty"
And I click "Login" button
Then I should see "Welcome, jack@daniles.com!"
Background 的重点是为几个场景定义一个共同的起点。如果您只有一个场景,那么它只能作为一种将事物分成几部分的方法才有意义。如果您熟悉单元测试框架,它类似于 xunit 系列中的设置方法,或者如果您使用 rspec,则类似于 before 块。出于 运行 测试的目的, background 中的内容也可以在场景中。它是一种重用机制。
背景与测试数据库没有直接关系。您 运行 来自黄瓜的所有步骤都可能会访问数据库。 background 用于在数据库中设置良好的起始状态。根据您的 cucumber/capybara 配置,数据库将在每个场景和背景之间重新设置 运行 在每个场景之前。
背景是 运行 在您的每个场景之前但在您的任何 Before Hooks 之后。 它用于编写黄瓜场景的 DRY 策略。一组 "prerequisite" 应该在 运行 实际测试用例之前执行的步骤。
例如。在检查仪表板或配置文件页面内容之前,用户必须登录。因此,登录覆盖将在 "Background" 部分内完成 那么你将有 2 个测试用例
背景: // 获取用户登录
场景://访问仪表板页面.....
场景://访问个人资料页面....
更多信息https://github.com/cucumber/cucumber/wiki/Background
对于不同的用户组,您可以使用场景大纲 这是示例:
https://makandracards.com/makandra/18905-how-to-not-repeat-yourself-in-cucumber-scenarios
希望对您有所帮助!!!