在每个场景之前执行步骤? (黄瓜 + 量角器 + angular)
Execute steps before each scenario? (Cucumber + protractor + angular)
我需要为我的 angular 5 应用程序创建 e2e 测试。我们正在使用黄瓜和量角器。
我有具体的列表步骤,我应该在开始某些场景时执行这些步骤。
这是一个例子:
Scenario: I need do process below before some scenarious
Given I load a html page
When I filling the form
| name | testname|
| gender | male|
| date | 08/18 |
| surmane | TestSurname |
And I click the checkbox
And I click the "SAVE AND CONTINUE" button
And I submit the details
Then I should be redirected to the second page
然后在开始其他场景时,我需要从第一个场景执行相同的步骤。
Scenario: Scenario 2 - i need the same from scenario 1
Given All steps from scenario 1 done and i redirected to the second page
...
Scenario: Scenario 3 - i need the same from scenario 1
Given All steps from scenario 1 done and i redirected to the second page
...
有没有把所有步骤都放到一个场景中使用的解决方案?
如何为此创建 "Before" 挂钩?例如
Before('@copyScenario', () => {
//.......list of steps
});
我不想 copy/paste 它...有什么想法吗?
执行此操作的最佳方法是陈述场景的意图,而不是在功能文件中列出操作。
BDD(因此 Cucumber 作为 BDD 工具)的目的是探索您正在实施的特性、能力和业务需求,以便业务人员(通常是非技术人员)拥有相同的作为开发和测试功能的人员对该功能的理解。
这意味着您写在答案中的场景更像是:
Scenario: Registering a user
Given I am on the registrations page
When I fill in my personal details
And submit the registration form
Then I should be taken to the dashboard
之后,您将编写一个新步骤来编译这些:
Scenario: Searching the site
Given I have registered an account
And I am logged in
When I search the site for "product"
Then I should see results for "product"
这 - 从非技术业务人员的角度来看,让他们看到测试背后的意图,并通过使每个测试步骤更加原子化(让他们能够无需复制和粘贴即可在所有地方使用,功能相同)。
还有其他替代方法,但我不打算在这里说明它们,因为我相信我上面的建议从长远来看会对您有所帮助。
这可以通过 cucumber 中称为 'Background' 的关键字来完成。
你应该像下面这样使用:
Background: Always do these steps before executing any scenarios
Given ....
When ....
Then ....
Scenario 1: Do after performing Background
...
Scenario 2: Do after performing Background
...
上面的脚本是这样的:- 它将执行后台步骤,然后执行场景 1,然后在完成场景 1 后,再次执行后台步骤,然后执行场景 2。
我需要为我的 angular 5 应用程序创建 e2e 测试。我们正在使用黄瓜和量角器。
我有具体的列表步骤,我应该在开始某些场景时执行这些步骤。
这是一个例子:
Scenario: I need do process below before some scenarious
Given I load a html page
When I filling the form
| name | testname|
| gender | male|
| date | 08/18 |
| surmane | TestSurname |
And I click the checkbox
And I click the "SAVE AND CONTINUE" button
And I submit the details
Then I should be redirected to the second page
然后在开始其他场景时,我需要从第一个场景执行相同的步骤。
Scenario: Scenario 2 - i need the same from scenario 1
Given All steps from scenario 1 done and i redirected to the second page
...
Scenario: Scenario 3 - i need the same from scenario 1
Given All steps from scenario 1 done and i redirected to the second page
...
有没有把所有步骤都放到一个场景中使用的解决方案?
如何为此创建 "Before" 挂钩?例如
Before('@copyScenario', () => {
//.......list of steps
});
我不想 copy/paste 它...有什么想法吗?
执行此操作的最佳方法是陈述场景的意图,而不是在功能文件中列出操作。
BDD(因此 Cucumber 作为 BDD 工具)的目的是探索您正在实施的特性、能力和业务需求,以便业务人员(通常是非技术人员)拥有相同的作为开发和测试功能的人员对该功能的理解。
这意味着您写在答案中的场景更像是:
Scenario: Registering a user
Given I am on the registrations page
When I fill in my personal details
And submit the registration form
Then I should be taken to the dashboard
之后,您将编写一个新步骤来编译这些:
Scenario: Searching the site
Given I have registered an account
And I am logged in
When I search the site for "product"
Then I should see results for "product"
这 - 从非技术业务人员的角度来看,让他们看到测试背后的意图,并通过使每个测试步骤更加原子化(让他们能够无需复制和粘贴即可在所有地方使用,功能相同)。
还有其他替代方法,但我不打算在这里说明它们,因为我相信我上面的建议从长远来看会对您有所帮助。
这可以通过 cucumber 中称为 'Background' 的关键字来完成。 你应该像下面这样使用:
Background: Always do these steps before executing any scenarios
Given ....
When ....
Then ....
Scenario 1: Do after performing Background
...
Scenario 2: Do after performing Background
...
上面的脚本是这样的:- 它将执行后台步骤,然后执行场景 1,然后在完成场景 1 后,再次执行后台步骤,然后执行场景 2。