投稿してなかった...
まだまだこれから!JUnit5入門/進藤 遼さん
-
JUnit5
- Junit4の後継バージョン
- 2017年9月 GA
- JDK baseline 8+
-
テストフレームワークに求めるもの(大事な要素)
- 簡潔さ・可読性
- 一貫性
- 拡張性
-
Junit5の良くなったところ
- 大事な要素が良くなっている
-
Junit5 demerit
- 1.8+
- パッケージが異なる
- 大きく変わった構造化テスト・パラメータ化テスト
- FW,IDE対応がまちまち
セットアップ(違うところ)
-
- マルチモジュール構成(Junit5の構成は3つ!) - junit platform (テスト実行基盤) - luncher, IDE上で動かない - junit jupitaer(新テストAPI) - @Testとか - junit vintage - マイグレーションサポート
Junit5.2 → Bill of Materials
- ↑のモジュールバージョンの組み合わせをうまく提供してくれる
テストの書き方で変わったところ
プチ変わった
-
- 4 public only
- 5 非publicクラス/メソッドもOK
-
4 @BeforeClass/@before?
-
5 @BeforeAll/@BeforeEach
- before /after の区別なしでよい
-
テストメソッド名
- 4 テスト名 =テストメソッド名
- 5 @DisplayName
結構変わった(嬉しい新機能)
- アサーション
構造化テスト・パラメータ化テスト
-
構造化テスト
- 4 public static class -> テストのためのインナークラス(グループ)
- 5 インナークラスとテストメソッドが共存できる using
@Nested
-
パラメータ化テスト
- 4
@Runwith(Theories.class ... テストランナー)
@DAtaPoints
@Theory
- 5 junit-jupiter-param module /
- ...そもそも パラメータ化テスト テストメソッドの引数にパラメータをいれて自動で回す機能
- 4
拡張モデル
- テストクラスの拡張方法
- 4 Runnner (@Runwith), Rule
- 5 @ExtendsWith, 複数指定可
マイグレーション
- 書き換える
- assertEqualsの引数変更...
- Rule,RunnerはExtensionに書き換え
- マイグレーションモジュール(Junit vintage使用)