selenium - 如何为具有大量变量的情况构建 BDD 场景
问题描述
我们的团队是 BDD 开发/规范的新手,从测试自动化的角度来看,我们希望获得一些关于在有很多变量的情况下设置 BDD 场景(和步骤)的建议,比如表单。
情况如下:创建员工的表单,由个人信息、工作详情、工资等多个主题组成。
团队提出了一个可能的场景大纲:
给定我想添加一个新员工
并且职位是“ jobtitle ”
当我提交表单时
然后通知被发送到“ manager ”
示例:
| 职称| 经理|
|开发商|John Doe|
上述步骤仅描述了情景结果的决定因素。所以一个人可能有什么名字或他/她将获得什么薪水不会影响场景。但是,在另一种情况下,不同的领域可能是决定因素,例如某人的部门。在这种情况下,如何捆绑场景或底层步骤,以便我们可以尽可能地重复使用?因为即使在这个例子中职位是决定因素,我们仍然需要填写所有其他必填字段才能提交表格。欢迎任何建议!
解决方案
我将定义某些类型的员工并在代码中获取正确的详细信息。
例如:初级管理员、高级管理员、经理助理 每个描述都说明了工作细节、薪水和角色。
基于这些,您可以在一个方法中生成薪水和工作描述。
在您的 bdd 场景中:
假设我有一个初级管理员员工
,其中初级管理员是一个参数,您可以使用它来获取您需要的数据类型并创建用户。
/**
* @When /^I have an (junior admin|senior hr) employee$/
*/
public function iHaveAnEmployee($employeeType)
{
// generate data for employee
$employee = someMethodThatGeneratesEmployeeDetails($employeeType);
// create the employee
someMethodThatCreatesTheEmployee($employee);
}
如果您想在报告中查看这些详细信息,请在步骤运行后找到一种方法在此处打印它们。