簡體   English   中英

將列表轉換為二維數組 Java 以用於 TestNG 數據提供程序

[英]Converting List to Two dimensional array Java for TestNG data provider

如果您使用 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;

相反,我正在查看一個實用程序函數,如果任何庫中都有可用的函數。

或者為 TestNG 編寫數據提供程序方法的更好方法

使用 Java 8 流(並使用這個關於將流轉換為數組的問題):

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

就這樣吧......讓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

這不是直接回答你的問題。 但是你也可以像這樣解決這個問題

  @DataProvider
  public Iterator<Object[]> studentProvider() {
    List<Student> students = getStudentList();
    Collection<Object[]> data = new ArrayList<Object[]>();
    students.forEach(item -> data.add(new Object[]{item}));
    return data.iterator();
  }

它也適用於單維數組,我在 testng 數據提供程序中將列表轉換為單維數組,可能對某人有用

 @DataProvider(name =  "Passing  List  Of Maps")
  public Object[]  createDataforTest3(){
   TestDataReader  testDataReader   =  new TestDataReader();
    List<String>  caselDs     =  new ArrayList<String>();
    caselDs    =             testDataReader.getValueForThekeyFromTestDataDirectory("testdate,"XYZ");
    Object[]  data      =       new String[caseIDs.size()];
    for (int  i=0;i<caseIDs.size()-1;i++)             {
   data[i]=  caselDs.get(i);
    return  data;}



  @Test(dataProvider =  "Passing  List  Of Maps",description=  "abc")
  public void  test(String value)         {
       System.out.println("Value  in  first  Map:"   + value);
     }

在此處輸入圖片說明 IT在單維數組中也為我工作,我在testng數據提供程序中將列表轉換為單維數組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM