JUnit

JUnitで複数のテストパターンを一括で実行できるようにしてみた

前回は基本的なアサーションについて述べてきたが、今回は@DataPointsアノテーションと@Theoryアノテーションを利用し、複数のテストパターンを一括で実行できるようにしてみたので、そのサンプルプログラムを共有する。

@DataPointsアノテーション、@Theoryアノテーションについては以下のサイトを参照のこと。
https://qiita.com/55beagle/items/080adc37bde109b8a833

前提条件

下記記事の実装が完了していること。

JUnitのアサーションを利用してみたJavaのプログラムの単体テストを自動化するツールに「Junit」があり、これを利用すると、テストを自動化でき、繰り返し実行できるように...



サンプルプログラムの内容

作成したサンプルプログラムの構成は以下の通り。
サンプルプログラムの構成
なお、上図の赤枠は、今回新規で作成したサンプルプログラムの内容で、他は「前提条件」に記載したプログラムと同一となる。



作成した「DemoUtilTheoriesTest.java」の内容は以下の通り。

「@DataPoints」アノテーションを付与したクラス配列で、テストを行う引数・戻り値の組み合わせを指定している。なお、ここで利用している「DateFixture」は内部staticクラスで、このプログラムの後方に記載している。

また、「@Theory」を付与したメソッドが今回のテスト対象メソッドである。「@DataPoints」アノテーションを付与した配列の要素をメソッドの引数で順に受け取ることによって、テストデータそれぞれについてテストを行っている。

さらに、クラスの先頭に「@RunWith(Theories.class)」を付与することで、「@Theory」を付与したメソッドのテストが行えるようになっている。



その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/junit-many-pattern-atonce/demo

また、本Junitプログラムの実行結果は以下の通りで、「@DataPoints」アノテーションを付与した配列の要素をメソッドの引数で順に受け取ってテストを行っていることが確認できる。
実行結果

要点まとめ

  • @DataPointsアノテーションと@Theoryアノテーションを利用すると、複数のテストパターンを一括で実行できる。