如何在进一步的场景之前将一个场景作为给定步骤运行



我用的是柏树&Cucumber自动化一个网站,允许用户搜索,然后打开和编辑列表中的东西…所以我有一个通用的初始场景,像这样;

Scenario: A valid user can navigate to & Search Things
Given I have submitted "valid" user credentials
When I am taken to the dashboard
And I navigate to Manage Things
Then I make a generic search for things

Given('I have submitted {string} user credentials', (userType)=>{
let user = userType === 'valid' ? testUser1 : new User('test@test.test', 'test1234')
userLogin(user)
})
When('I am taken to the dashboard', ()=>{
homepage.mainHome().should('be.visible')
})

And('I navigate to Manage Things', () =>{
homepage.homeThings().click()
homepage.thingsManageThings().click()
cy.get('.form-header').should('contain', 'Things')
})
Then('I make a generic search for things', () =>{
thingsMenu.manageThingsSearch().click()
thingsMenu.manageThingsTable().should('be.visible')
})

继续前进,我希望接下来的几个场景/测试在继续执行更多步骤之前运行此场景-理想情况下,我会有类似Given A valid user can navigate to & Search Things的东西,然后是When I select edit on the first thing等. ...如何将Scenario封装成Given步骤?我看过使用before()语句,但似乎没有回答之前运行整个场景的问题…?

您可以通过在特性文件中使用Background部分来实现这一点。
请看这里。

Feature: My feature
Description of my feature
Background: this will run before each scenario
Given A valid user can navigate to & Search Things
And .....

Scenario: #1
When I select edit on the first thing
Then ...
Scenario: #2
Given ...
When ...
Then ...

相关内容

最新更新