2016-07-13 2 views
0

私は、私のプロジェクトからカスタムクラスのオブジェクトの配列を返すtestNGデータプロバイダメソッドを作成しようとしています。この配列は1次元の配列なので、このdataproviderメソッドから2次元の配列を返す必要はありません。 Dataproviderは常に2D配列(2D以上ではない)を返すようにしてください。もしそうなら、私は次の行に助けが必要です:TestNGで1D Dataproviderメソッドを作成するには?

return new Object [] {} {ユーザー{0}、{ユーザー[1]}、{ユーザー[2]}、{ユーザー[3]} }

今後この配列を展開する場合、4つ以上の要素がある場合は、この完全な関数を編集する必要があるため、この行をより良い方法で記述することはできますか?

以下

は私が現在使用していますコードです:

@DataProvider(name = "credentialsProvider", parallel=false) 
public static Object[][] credentialsProvider() throws Exception { 
    User[] user=new User[4]; 
    user[0]=new User(UserTypes.AGENCY_MANAGER,1); 
    user[1]=new User(UserTypes.AGENT,1); 
    user[2]=new User(UserTypes.AGENCY_MODERATOR,1); 
    user[3]=new User(UserTypes.EW_ECS_AGENCY_MANAGER,1); 
    return new Object[][]{{user[0]},{user[1]},{user[2]},{user[3]}}; 
    }; 
} 
+0

は私がuはこのようなものが必要になり、それは非常に使いやすい作るラッパーを持っている?@dataProvider(名前=「カテゴリ」) \tパブリックオブジェクト[] [] testCategoryReadは()例外{ \t \tリターン・プロバイダがスローされます。 testDataBuilder() \t \t \t \t .withAttribute( "サイト"、siteUS).capture() \t \t \t \t .build(); \t} –

答えて

0

dataProviderに2Dであるためには理由があります - あなたがしてみましょう合格しなければならなかった場合は、今日、あなたは、あなたがデータとして渡したい1つの文字列を持っていますUserオブジェクトとUserDetailsオブジェクトをテストケースに渡すと、両方を渡す方法が必要なので、ユニット配列は基本的に単一テストに渡す必要があり、2dはそのような複数のデータのリストです。

インデックスを1行に移動するのではなく、ユーザーオブジェクトを追加するためにユーザー配列をループオーバーさせないのはなぜですか。何かが追加されたら、ユーザーオブジェクトを定義するだけでよいので、forループは長さ全体をループします。

関連する問題