学习新的Rails应用程序并为其编写一些测试。在编写测试时,遇到的问题是:
在海原黄瓜测试中写“背景”意味着什么?我们为什么要写“背景”?能避免吗?
->与测试数据库有任何关系吗?还是作为“场景”的数据库?
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!"发布于 2017-03-10 10:05:04
背景在您的每个场景之前运行,但是在Hooks之前的任何一个场景之后运行。它用于编写黄瓜场景的干燥策略。在运行实际测试用例之前应该执行的一组“先决条件”步骤。
就像。在签入仪表板或配置文件页内容之前,必须登录用户。因此,登录覆盖率将在“后台”部分中完成,然后将有2个测试用例。
背景: //让用户登录
场景://访问仪表板页.
场景://访问配置文件页..。
有关更多信息,https://github.com/cucumber/cucumber/wiki/Background
对于不同的用户集,您可以使用场景大纲,下面是示例:
https://makandracards.com/makandra/18905-how-to-not-repeat-yourself-in-cucumber-scenarios
希望这会有帮助!
发布于 2017-03-10 08:14:00
背景的要点是为几种场景定义一个共同的起点。如果您只有一个场景,那么它作为将事物分成几个部分的一种方法是有意义的。如果您熟悉单元测试框架,那么它与xunit系列中的安装方法类似,如果使用rspec,则类似于前置块。为了运行测试,背景中的内容也可以放在场景中。它是一种重用机制。
后台与测试数据库之间没有直接关系。从黄瓜上运行的所有步骤都可能击中数据库。后台用于在数据库中设置良好的启动状态。根据您的黄瓜/capybara配置,数据库将在每个场景之间重置,后台在每个场景之前再次运行。
https://stackoverflow.com/questions/42713298
复制相似问题