首页 > 解决方案 > TestNG - 无法添加字符串列表作为数据提供者

问题描述

我正在尝试将字符串列表作为 DataProvider 传递,这是我的代码:

    @DataProvider(name="test-urls")
    public Object[] testUrls(){
        ArrayList<Object> data = new ArrayList<>();
        // do something here to add elements
        // i.e: data.add("test string 1");
        return new Object[] {data};     
    }

这是测试:

    @Test(enabled = true, dataProvider = "test-urls")
    public void test(String url) {
        System.out.println("url: " + url);
    }

看起来简单的测试失败了。你能告诉我我的代码有什么问题吗?谢谢

标签: javatestngtestng-dataprovider

解决方案


如果你不喜欢老式的 DP 风格,值得尝试一个名为test-data-supplier的 TestNG 扩展,它是一个实体驱动的 DP。然后您的样本将变得如此简单:

@DataSupplier(name="test-urls")
public List<String> testUrls(){
    return Arrays.asList("url1", "url2", "url3");
}
@Test(enabled = true, dataProvider = "test-urls")
public void test(String url) {
    System.out.println("url: " + url);
}

推荐阅读