2016-05-30 16 views
0

は、私は、データプロバイダは、3つの引数を返していると私は試験方法で3つの別々の引数を与えた場合、それは正常に動作している。ここデータプロバイダが複数の値を返すときに、テストメソッドで単一の引数を使用する方法

@DataProvider(name="Login1") 
public Object[][] passData() throws IOException 
{ 
    ExcelDataConfig config=new ExcelDataConfig(readPropertiesUtility.getFilePath(LoginConstant.excelPath)); 
    int rows=config.getRowCount(0); 

    Object[][] data=new Object[rows-1][5]; 

    for(int i=0;i<rows-1;i++) 
    { 
     data[i][0]=config.getData(0, i+1, 0)); 
     data[i][1]=config.getData(0, i+1, 1); 
     data[i][2]=config.getData(0, i+1, 2); 
    } 
    return data;  
} 


@Test(dataProvider="Login1") 
public void logintoApplication(LoginFilterDetails loginFilterDetails) throws InterruptedException, IOException 
{ 
    --etc 
    --- etc 
} 

以下のようにデータプロバイダおよび試験方法を持っています考えてみましょう。しかし、私はそれを単一の引数として渡す必要があります。

私は1つのクラスを作成し、それをmethod.Butの引数として渡しました。エラーは** "** org.testng.TestNGException: として投げています。データプロバイダは3つのパラメータを渡そうとしていますが、TestNGメソッドです。ログイン#のlogintoApplicationは、私の場合のいくつかでは****

を1" かかり、データプロバイダは、いくつかのn個の数が.soの値が返されます、私は一つの引数を処理する必要がある試験方法で

親切にこの問題を解決することをお勧め問題。

答えて

0

3つの引数をLoginFilterDetailsオブジェクトのプロパティとして指定する必要があります。配列では、あなたは何かを持っているはずです

for(int i=0;i<rows-1;i++){ 
data[i][0]=new LoginFilterDetails(config.getData(0, i+1, 0));//or whatever is returning 3 args 
} 
関連する問題