如果您使用 TestNG,您会发现要将方法用作数据提供者,您必须创建一个返回二维 Object 数组的方法。
因此,如果我有一个 List of (say) 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;
Run Code Online (Sandbox Code Playgroud)
相反,我正在查看一个实用程序函数,如果任何库中都有可用的函数。
或者为 TestNG 编写数据提供程序方法的更好方法
使用 Java 8 流(并使用这个关于将流转换为数组的问题):
@DataProvider
public Object[][] studentProvider() {
return studentList.stream()
.map(student -> new Object[] { student })
.toArray(Object[][]::new);
}
Run Code Online (Sandbox Code Playgroud)
就这样吧……让 stackoverflow 称我为风滚草……但这就是答案。
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8358 次 |
| 最近记录: |