我正在使用 BDD 编写测试用例。我遇到了一个被困住的场景
我正在使用以下步骤生成随机数据
When generate random data for registration form
有一个 Bean 类,其中有一些字段,例如 fname、lname、email、pass
当我调用上面的步骤时,它会生成随机数据并填充该 bean 类
现在它返回该 bean 类对象,我将其存储在 formdata
变量中
And store into 'formdata'
现在我想将其发送到我的用户名字段,如下所示
And enter firstname as '${formdata}'
相同的代码步骤:
@QAFTestStep(stepName = "enterFirstName", description = "enter firstname as {0}")
public void enterFirstName(Map<String, Object> data) {
sendKeys(data.get("firstname").toString(), element);
}
它工作正常,但假设在某些情况下我必须只发送如下字符串
And enter firstname as 'Narendra'
步骤是:
@QAFTestStep(stepName = "enterFirstName", description = "enter firstname as {0}")
public void enterFirstName(String fname) {
sendKeys(fname, element);
}
那么我如何将这两个代码作为单一方法进行管理?
最佳答案
我也有类似的需求,需要生成随机字符串以获得更广泛的输入覆盖范围。我建议形成一个基于分隔符的逻辑。
示例:
public static void main(String[] arg) {
enterFirstName("iamkenos");
enterFirstName("${formdata}");
}
public static void enterFirstName(String fname) {
System.out.println(transformData(fname));
}
public static String transformData(String data) {
Pattern pattern = Pattern.compile("^\\$\\{.+}$");
Matcher matcher = pattern.matcher(data);
if (matcher.matches()) {
//do some logic on your data;
data = "my new data 123";
}
return data;
}
但是,这将要求您:
transformData(arg)
${}
输出:
iamkenos
my new data 123
关于java - 在 BDD 中使用不同类型的参数调用相同的步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50735306/