java - 为 TestNG 数据提供者将列表转换为二维数组 Java

标签 java testng

如果您使用的是 TestNG,您会发现要将方法用作数据提供者,您必须创建一个返回二维对象数组的方法。

因此,如果我有一个(比方说)Students 列表,是否有任何实用方法可以将其转换为二维数组。

希望使用这样的循环手动转换它

 List<Student> studentList = getStudentList();

 Object [][] objArray = new Object[studentList.size][];

 for(int i=0;i< studentList.size();i++){
    objArray[i] = new Object[1];
    objArray[i][0] = studentList.get(i);
 } 

 return objArray;

相反,如果任何库中有可用函数,我会查看实用函数。

或者为 TestNG 编写数据提供程序方法的更好方法

最佳答案

使用 Java 8 流(并使用关于 converting a stream into array 的问题):

@DataProvider
public Object[][] studentProvider() {
    return studentList.stream()
        .map(student -> new Object[] { student })
        .toArray(Object[][]::new);
}

关于java - 为 TestNG 数据提供者将列表转换为二维数组 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28824037/

相关文章:

selenium - 浏览器堆栈,用类或测试名称替换 session 名称

java - 如何在没有所有子节点文本的情况下获取直接元素的文本

java - 为什么 Java 不允许在迭代器上使用 foreach(仅在可迭代对象上)?

java - 使用数组计算时如何格式化输出?

java - 配置失败: @BeforeClass setUp org.mockito.exceptions.base.MockitoException:无法初始化@Spy注释字段 'allRequestParams'

testing - 使用 testng 或任何其他框架进行连续测试

java - 如何设置日期时间小部件的值

java - 使用 java.util.Logging 将某些类记录到单个文件中,并将某些类记录到各自的日志文件中

java - 如何在浏览器中访问第 3 方 cookie?

eclipse - "testng doesn' t 支持嵌套的 "java"元素。”- 执行 build.xml 时 - JAR 目标