在场景概述中,如果存在2个或更多场景,则将针对另外两个场景执行功能的所有步骤。
但我只需要执行一次步骤即登录步骤。
例如:
Scenario Outline: Acceptance page has <Application> logo appearing on top
Given I am signing up in <Application> #I want to run this step only once
And I navigate to "Dashboard" page # I want to run this step only once
Then I should see "header logo" exist
And I should see "footer" exist
And I should expect the following elements to be visible
| element |
| Legal |
| Privacy |
| Security |
| Cookies |
Examples:
| Application |
| Gmail |
在上面的功能文件中,我只想登录应用程序一次并验证其余步骤。
目前,对于每个验证步骤,Logon事情都会一次又一次地发生。
请建议我如何只运行登录步骤一次,并且可以检查页面上的多个项目。
答案 0 :(得分:0)
提取公共步骤并将它们放入Background语句中。背景在每个场景之前运行,但在任何前挂钩之后运行。
答案 1 :(得分:0)
首先,@ mikejramsey56正确地将常规步骤从场景移动到后台。
其次,您可以像Mike建议的那样在前钩子中登录一次网站,但如果浏览器因任何原因退出,您就不会在一个好地方。测试应该是独立的。
第三,Cucumber是展示你所需要的复杂程度的好地方。您可以将步骤合并为一个步骤。如果这样做,您应该将代码拉出步骤并将其放入单独的方法中,然后从该步骤调用该方法。您可以使用一个步骤来调用多个方法,例如验证公共页面组件。
第四,我希望你练习,因为确保一个标题&amp;脚存在不是使用行为。用户想要做东西并看到东西,可能在顶部的div或框架中,但他们从不想看到div或框架。