【发布时间】:2017-12-12 17:54:25
【问题描述】:
在浏览了其他在线资源后,我了解到我们不能拥有多个测试数据的背景。我有一组场景,这些场景是添加具有不同权限的用户,他们首先有共同的登录步骤,这将是我的背景,因为它需要为每个场景执行。 我的场景示例
Background: Admin or Super Admin Login
Given Open browser and navigate "xyz" server
When Give user credentials "<username>" and "<password>"
|username|password|
|Admin | 123|
|SuperAdmin| 123|
Then User selects a client
And Click on Go To Dashboard
Then User should be able to log in
@UserPage
Scenario: Admin or super admin user add a new user with admin rights
When Admin user adds a new user
And User fills in all the required information
|username|Client|Password|Retype Password | Email| Admin |
Test data
And Add new user personal information
|FirstName|LastName|Phone|
Test data
Then User with admin rights is created.
我的要求是管理员和超级管理员用户(都有不同的权限)可以创建一个有或没有管理员权限的新用户。 所以,我的问题是如何用不同的登录用户测试这个场景,所以后台和场景应该为管理员用户和超级管理员执行一次。
关于编写和执行这个小黄瓜脚本的推荐方法有什么线索吗? 谢谢。
【问题讨论】:
-
您可以使用 ScenarioOutline 为两个管理员运行场景,方法是创建一个包含管理员登录详细信息的示例表。问题是后台步骤不会从示例表中获取数据。您可以将背景步骤浓缩为超级步骤,并将其包含在实际场景大纲本身中。
-
谢谢,感谢您的回复。 @Grasshopper我已经有后台代码实现,这个背景是我的场景是另一个功能文件,所以我正在寻找代码可重用性。那么有没有办法复用已有的场景呢?
-
您仍然可以从登录部分的“超级”单步方法中调用现有方法。可重用性仍然存在,但登录的小黄瓜步骤将被压缩。但是可维护性肯定是一个问题。如果您添加一个额外的 'admintype' 列并将 desc 更改为 "
user add ... " -
谢谢,那会奏效。您可以发表您的评论作为答案吗?
-
@Grasshopper,我尝试在场景大纲中使用占位符,它给出了词法分析错误。链接到错误代码 - paste.fedoraproject.org/paste/aBzCBvZjp7SyvR4HzPP--w
标签: java gherkin cucumber-java