gpt4 book ai didi

java - 在 BDD 中使用不同类型的参数调用相同的步骤

转载 作者:太空宇宙 更新时间:2023-11-04 10:24:14 25 4
gpt4 key购买 nike

我正在使用 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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com