@Parameters を使用した例による JUnit パラメーター化テスト

Junit のパラメーター化テストとは何ですか?

パラメーター化されたテストは、異なる値を使用して同じテストを何度も実行することです。 これにより、開発者は、入力と期待される結果のみが異なる同じテストを実行する時間を節約できます。

パラメーター化されたテストを使用すると、データ ソースからデータを取得するテスト メソッドをセットアップできます。

さまざまな数値を合計する簡単なテストを考えてみましょう。 コードは次のようになります –

Junit のパラメータ化されたテスト

上記のアプローチでは、多くの冗長性が生じます。

シンプルなアプローチが必要です。 パラメーター化されたテストを使用すると、10 個のデータ入力を入力するメソッドを追加するだけで、テストが自動的に 10 回実行されます。

パラメータ化された JUnit テストを作成する手順

Following コードはパラメータ化されたテストの例を示しています。 Arithmetic クラスの sum() メソッドをテストします。

ステップ1) クラスを作成します。 この例では、指定された数値の合計を返す sum (int,int) メソッドを使用して XNUMX つの数値を入力します。

パラメータ化された JUnit テストを作成する手順

ステップ2) パラメータ化されたテストクラスを作成する

パラメータ化された JUnit テストを作成する手順

コードの説明

  • コード行 11: @runWith(Parameterized.class) を使用してテスト クラスにアノテーションを付けます。
  • コード行 13: 変数「firstNumber」をプライベートとして宣言し、型を int として宣言します。
  • コード行 14: 変数 'secondNumber' をプライベートとして宣言し、型を int として宣言します。
  • コード行 15: 変数「expectedResult」をプライベートとして宣言し、型を int として宣言します。
  • コード行 16: 変数「airthematic」をプライベートとして宣言し、タイプを Airthematic として宣言します。

@RunWith(クラス名.クラス): @RunWith 注釈は、ランナー クラス名を指定するために使用されます。 パラメーターとしてタイプを指定しない場合、ランタイムはタイプを選択します。 BlockJunit4ClassRunner デフォルトでは

このクラスは、新しいテスト インスタンスを使用してテストを実行する役割を果たします。 これは、セットアップ (リソースの関連付け) やティアダウン (リソースの解放) などの JUnit ライフサイクル メソッドの呼び出しを担当します。

パラメータ化するには、@RunWith を使用してアノテーションを付け、テストに必要な .class を渡す必要があります。

ステップ3) テストデータを格納するコンストラクターを作成します。 3つの変数を保存します

パラメータ化された JUnit テストを作成する手順

ステップ4) テスト データを生成して返す静的メソッドを作成します。

パラメータ化された JUnit テストを作成する手順

コード行 32,33: XNUMX 次元配列を作成します (加算用の入力パラメーターを提供します)。 asList メソッドを使用して、データを List 型に変換します。 メソッド入力の戻り値の型はコレクションであるためです。

コード行 30: 使い方 @パラメーター アノテーションを使用して、テストを実行するための入力データのセットを作成します。

@Parameters アノテーションによって識別される静的メソッドは、コレクション内の各エントリがテストの XNUMX 回の反復の入力データとなるコレクションを返します。

要素を考えてみる

1,2,3 {}

ここに

最初の番号 =1

秒数=2

期待される結果=3

ここでは、クラスが複数回インスタンス化されるときに、各配列要素が一度に XNUMX つずつコンストラクターに渡されます。

ステップ5) 完全なコード

パラメータ化された JUnit テストを作成する手順

コードの説明:

  • コード行 25: @Before アノテーションを使用してリソース (ここでは Airthematic.class) をセットアップします。 @Before アノテーションは、各テスト ケースの前に実行するためにここで使用されます。 テストの前提条件が含まれています。
  • コード行 36: @Test アノテーションを使用してテストを作成します。
  • コード行 39: Assert ステートメントを作成して、合計が予想したものと等しいかどうかを確認します。

ステップ6) パラメータ化されたテストを実行するテスト ランナー クラスを作成します。

パラメータ化された JUnit テストを作成する手順

コードの説明:

  • コード行 8: JUnit テストを実行するクラス テストのメイン メソッドを宣言します。
  • コード行 9: JunitCore.runclasses を使用してテスト ケースを実行すると、テスト クラス名をパラメータとして受け取ります (この例では Airthematic.class を使用しています)。
  • コード行 11: for ループを使用して結果を処理し、失敗した結果を出力します。
  • コード行 13: 成功した結果を出力します。

出力:

以下に示すように、失敗の痕跡がなく、テストが成功したことを示す出力を次に示します。

パラメータ化された JUnit テストを作成する手順

コンソールで結果を確認してください。XNUMX つの数値の加算が示されています。

JUnit パラメータ化テスト

まとめ

パラメーター化されたテストを使用すると、開発者は異なる値を使用して同じテストを何度も実行できます。

パラメータ化中に使用する重要なアノテーション

  • @RunWith
  • @パラメーター