2016-12-04 9 views
0

マイプロパティファイルにプロパティ値を割り当てる次のようになります。私は、ファイル内のすべてのプロパティを反復処理し、このようなパラメータを渡す必要がありProgrammaticalyは@Parameters

demo6312623.mockable.io/testingmoke = 200;aaaa 
www.google.com = 200;bbbb 

Object[][] data = new Object[][] { 
    { 200, "demo6312623.mockable.io/testing", "aaaa"}, 
    { 200, "www.google.com", "bbbb"} 
} 

私ができますこのようなプロパティファイル谷の反復:

for (Map.Entry<Object, Object> props : props.entrySet()) { 
    System.out.println((String)props.getKey() +" nnnnn "+ (String)props.getValue());   
} 

をしかし、私はこれらのparameに合格するかどうかはわかりませんこの方法にTERS:

@Parameters 
public static Collection <Object[]> addedNumbers() throws IOException { 
    props = new Properties(); 
    FileInputStream fin = new FileInputStream("src/test/resources/application.properties"); 
    props.load(fin); 

    for (Map.Entry < Object, Object > props: props.entrySet()) { 
     System.out.println((String) props.getKey() + " nnnnn " + (String) props.getValue()); 
    } 

    // not sure how to assign the values to the 2 dimensional array by splitting from ";" 
    //  Object[][] data = new Object[][]{ 
    //   { 200, "demo6312623.mockable.io/testing", "aaaa"}, 
    //   { 200, "www.google.com", "bbbb"} 
    //  }; 
    return Arrays.asList(data); 
} 

答えて

1

あなたは、インラインコメントを次のコードに示すように、データを設定することができますので、あなたの@Parameters方法から(ArrayListのような)Collection型を返す必要があります。

@Parameters 
public static Collection<Object[]> testData() throws Exception { 

    //Load the properties file from src/test/resources 
    FileInputStream fin = new FileInputStream("src/test/resources/ 
             application.properties"); 
    Properties props = new Properties(); 
    props.load(fin); 

    //Create ArrayList object 
    List<Object[]> testDataList = new ArrayList<>(); 

    String key = null; 
    String[] value = null; 
    String[] testData = null; 
    for (Map.Entry<Object, Object> property : props.entrySet()) { 
     key = (String)property.getKey();//Get the key 

     //Split the property value with ';' and assign to String array 
     String[] value = ((String)property.getValue()).split(";"); 
     testData[0] = value[0]; 
     testData[1]= value[1]; 

     //add to arraylist 
     testDataList.add(testData); 
    } 

    // return arraylist object 
    return testDataList; 
}