我需要为我的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
});
我不想复制/粘贴...任何想法吗?
答案 0 :(得分:1)
执行此操作的最佳方法是陈述方案的意图,而不是在功能文件中列出操作。
BDD(因此将黄瓜作为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"
这-从非技术人员的眼中,他们可以通过使每个测试步骤更加原子化来了解测试背后的意图,并使您的生活更轻松(使他们能够功能相同的所有地方都使用,无需复制和粘贴。
还有其他选择,但我在这里不作说明,因为我认为以上建议可以长期为您提供帮助。
答案 1 :(得分:0)
这可以通过在黄瓜中称为“背景”的关键字来完成。 您应该使用如下所示:
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。