首页 > 解决方案 > 如何为具有大量变量的情况构建 BDD 场景

问题描述

我们的团队是 BDD 开发/规范的新手,从测试自动化的角度来看,我们希望获得一些关于在有很多变量的情况下设置 BDD 场景(和步骤)的建议,比如表单。

情况如下:创建员工的表单,由个人信息、工作详情、工资等多个主题组成。

团队提出了一个可能的场景大纲:

给定我想添加一个新员工
并且职位是“ jobtitle
我提交表单时
然后通知被发送到“ manager

示例:
| 职称| 经理|
|开发商|John Doe|

上述步骤仅描述了情景结果的决定因素。所以一个人可能有什么名字或他/她将获得什么薪水不会影响场景。但是,在另一种情况下,不同的领域可能是决定因素,例如某人的部门。在这种情况下,如何捆绑场景或底层步骤,以便我们可以尽可能地重复使用?因为即使在这个例子中职位是决定因素,我们仍然需要填写所有其他必填字段才能提交表格。欢迎任何建议!

标签: seleniumautomated-testsbddgherkinkatalon-studio

解决方案


我将定义某些类型的员工并在代码中获取正确的详细信息。

例如:初级管理员、高级管理员、经理助理 每个描述都说明了工作细节、薪水和角色。

基于这些,您可以在一个方法中生成薪水和工作描述。

在您的 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);
    }

如果您想在报告中查看这些详细信息,请在步骤运行后找到一种方法在此处打印它们。


推荐阅读