JUnit @Parameters を使用した例によるパラメーター化されたテスト
Junit のパラメータ化テストとは何ですか?
パラメーター化されたテストは、異なる値を使用して同じテストを何度も実行することです。 これにより、開発者は、入力と期待される結果のみが異なる同じテストを実行する時間を節約できます。
パラメーター化されたテストを使用すると、データ ソースからデータを取得するテスト メソッドをセットアップできます。
異なる数値を合計する簡単なテストを考えてみましょう。コードは次のようになります。
上記のアプローチでは、多くの冗長性が生じます。
シンプルなアプローチが必要です。 パラメーター化されたテストを使用すると、10 個のデータ入力を入力するメソッドを追加するだけで、テストが自動的に 10 回実行されます。
パラメータ化されたオブジェクトを作成する手順 JUnit test
次のコードは、パラメータ化されたテストの例を示しています。Arithmetic クラスの sum() メソッドをテストします。
ステップ1) クラスを作成します。この例では、与えられた数値の合計を返すsum (int,int)メソッドを使用して2つの数値を入力します。
ステップ2) パラメータ化されたテストクラスを作成する
コードの説明
- コード行 11: @runWith(Parameterized.class) を使用してテスト クラスにアノテーションを付けます。
- コード行 13: 変数「firstNumber」をプライベートとして宣言し、型を int として宣言します。
- コード行 14: 変数 'secondNumber' をプライベートとして宣言し、型を int として宣言します。
- コード行 15: 変数「expectedResult」をプライベートとして宣言し、型を int として宣言します。
- コード行 16: 変数「airthematic」をプライベートとして宣言し、タイプを Airthematic として宣言します。
@RunWith(クラス名.クラス): @RunWith 注釈は、ランナー クラス名を指定するために使用されます。 パラメーターとしてタイプを指定しない場合、ランタイムはタイプを選択します。 ブロックJunit4クラスランナー デフォルトでは
このクラスは、新しいテスト インスタンスを使用してテストを実行する役割を果たします。呼び出す責任があります JUnit setup(リソースの関連付け)やteardown(リソースの解放)などのライフサイクルメソッド。
パラメータ化するには、@RunWith を使用してアノテーションを付け、テストに必要な .class を渡す必要があります。
ステップ3) テストデータを格納するコンストラクターを作成します。 3つの変数を保存します
ステップ4) テスト データを生成して返す静的メソッドを作成します。
コード行 32,33: XNUMX 次元配列を作成します (加算用の入力パラメーターを提供します)。 asList メソッドを使用して、データを List 型に変換します。 メソッド入力の戻り値の型はコレクションであるためです。
コード行 30: 使い方 @パラメーター アノテーションを使用して、テストを実行するための入力データのセットを作成します。
@Parameters アノテーションによって識別される静的メソッドは、コレクション内の各エントリがテストの XNUMX 回の反復の入力データとなるコレクションを返します。
要素を考えてみる
1,2,3 {}
ここに
最初の番号 =1
秒数=2
期待される結果=3
ここでは、クラスが複数回インスタンス化されるときに、各配列要素が一度に XNUMX つずつコンストラクターに渡されます。
ステップ5) 完全なコード
コードの説明:
- コード行 25: @Before アノテーションを使用してリソース (ここでは Airthematic.class) をセットアップします。 @Before アノテーションは、各テスト ケースの前に実行するためにここで使用されます。 テストの前提条件が含まれています。
- コード行 36: @Test アノテーションを使用してテストを作成します。
- コード行 39: Assert ステートメントを作成して、合計が予想したものと等しいかどうかを確認します。
ステップ6) パラメータ化されたテストを実行するテスト ランナー クラスを作成します。
コードの説明:
- コード行 8: クラステストを実行するメインメソッドを宣言します。 JUnit テスト。
- コード行 9: JunitCore.runclasses を使用してテスト ケースを実行すると、テスト クラス名がパラメーターとして使用されます (この例では Airthematic.class を使用しています)。
- コード行 11: for ループを使用して結果を処理し、失敗した結果を出力します。
- コード行 13: 成功した結果を出力します。
出力:
以下に示すように、失敗の痕跡がなく、テストが成功したことを示す出力を次に示します。
コンソールで結果を確認します。2 つの数値の加算が表示されます。
まとめ
パラメーター化されたテストを使用すると、開発者は異なる値を使用して同じテストを何度も実行できます。
パラメータ化中に使用する重要なアノテーション
- @RunWith
- @パラメーター