有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在数据提供程序Testng中使用字符串列表运行测试

我有一个测试,通过给出 姓名、电话号码、主要联系方式。 目标是测试相同的电话号码和联系方式,但名称的不同变体(例如:3个名称)。 测试应该运行3次。 姓名1,带有电话号码和联系方式, 姓名2,带有电话号码和联系方式, 姓名3,带有电话号码和联系方式

我正在尝试使用数据提供者为我的测试提供数据。但我不知道如何在数据提供程序中提供名称列表并将其返回到我的测试

public List<String> names;

@DataProvider(name="TestData")
public object[][] getTestData() {
    names = new ArrayList<String>();
    names.add("Name1");
    names.add("Name2");
    names.add("Name3");
    Object[][] returnNames = new Object[names.size()][];
    for(int i=0;i<names.size(); i++) {
        returnNames[i] = new Object[]{names.get(i)};
    }

    return new Object[][] {
    {returnNames, "1234567890", "Phone"} // (->Problem 1:I am not sure if this is right)
    };
}

@Test(dataprovider="TestData")
public void testMethod(List<String> names, String phone, String modeOfContact) {
// (-> Problem 2: Is the parameter initialization right in @Test?)

//Code here

}

共 (1) 个答案

  1. # 1 楼答案

    最简单的方法可能是直接内联初始化数据数组:

    @DataProvider(name="TestData")
    public static Object[][] getTestData() {
        String phoneNumber = "123456789";
        String modeOfContact = "Phone";
    
        return new String[][] {
                {"Name1", phoneNumber, modeOfContact},
                {"Name2", phoneNumber, modeOfContact},
                {"Name3", phoneNumber, modeOfContact}
        };
    }