Java TestNG-无法将字符串列表添加为数据提供程序

Java TestNG-无法将字符串列表添加为数据提供程序,java,testng,testng-dataprovider,Java,Testng,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");

我试图以数据提供者的身份传递字符串列表,以下是我的代码:

    @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};     
    }

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

您必须返回
Object[][]
Object[]
迭代器如果您不喜欢老式的DP样式,那么值得尝试名为的TestNG扩展,这是一种实体驱动的DP。然后,您的示例将变得非常简单:

@DataSupplier(name=“测试URL”)
公共列表testurl(){
返回数组.asList(“url1”、“url2”、“url3”);
}
@Test(enabled=true,dataProvider=“Test url”)
公共无效测试(字符串url){
System.out.println(“url:+url”);
}

我需要返回2D阵列有什么原因吗?因为我只想为每个单独的测试用例使用每个元素。ThanksObject[X][Y]:每个X都是一个测试调用,Y都是它的特定参数负载。
    @Test(enabled = true, dataProvider = "test-urls")
    public void test(String url) {
        System.out.println("url: " + url);
    }
@DataProvider(name="test-urls")
    public Object[][] testUrls(){
        ArrayList<string> 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( ArrayList<string> list) {
        System.out.println(list);
    }