testng
パラメータ化されたテスト
サーチ…
データプロバイダ
データプロバイダを使用すると、複数のテスト入力を作成してテスト内で実行できます。数字が正しく倍加されていることを確認するテストを考えてみましょう。データプロバイダが返す静的メソッドを提供作成するいずれかのObject[][]
またはIterator<Object[]>
で注釈(後者はテスト入力の遅延計算を可能にする) @DataProvider
プロパティと、アノテーションname
識別する一意の文字列でありますプロバイダ。
import org.testng.annotations.DataProvider;
public class DoublingDataProvider {
public final static String DOUBLING_DATA_PROVIDER = "doublingDataProvider";
@DataProvider(name = DOUBLING_DATA_PROVIDER)
public static Object[][] doubling() {
return new Object[][]{
new Object[]{1, 2},
new Object[]{2, 4},
new Object[]{3, 6}
};
}
}
上記の場合、各Object[]
は1つのテストケースのデータセットを表します。ここでは倍数を、続いて2倍した後の期待値を示します。
データプロバイダを使用するには、テストのdataProvider
プロパティにプロバイダの名前を入力します。プロバイダメソッドがテストクラスまたはその基本クラスの外部で定義されている場合は、 dataProviderClass
プロパティも指定する必要があります。テストメソッドは、テストケース記述の要素に対応するパラメータを取る必要があります。ここでは2つのintです。
import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals;
public class DoublingTest {
@Test(dataProvider = DoublingDataProvider.DOUBLING_DATA_PROVIDER, dataProviderClass = DoublingDataProvider.class)
public void testDoubling(int number, int expectedResult) {
assertEquals(number * 2, expectedResult);
}
}
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow