LoginSignup
0
1

More than 5 years have passed since last update.

JJUG CCC Spring2018メモ

Posted at

投稿してなかった...

まだまだこれから!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
- ↑のモジュールバージョンの組み合わせをうまく提供してくれる

テストの書き方で変わったところ

プチ変わった

結構変わった(嬉しい新機能)

  • アサーション
    • assertEquals
      • 引数の順序変わる
    • アサーショングループ化
      • 4 一つのテスト(@Test)のなかに複数アサーションがあるとき、一つ間違えたら後続が実行されない
      • 5 実行される!
        • assertAll() ラムダ式で複数かける!すべてのアサートしてすべてOKならOKを返す
    • 例外の検証
      • 4 @Test(expected = ...Exception.class) or try-catch
      • 5 assertThrows(<投げられたい例外クラス>, ラムダ式で発生するだろう処理を記載)

構造化テスト・パラメータ化テスト

  • 構造化テスト

    • 4 public static class -> テストのためのインナークラス(グループ)
    • 5 インナークラスとテストメソッドが共存できる using @Nested
  • パラメータ化テスト

    • 4 @Runwith(Theories.class ... テストランナー) @DAtaPoints @Theory
    • 5 junit-jupiter-param module /
    • ...そもそも パラメータ化テスト テストメソッドの引数にパラメータをいれて自動で回す機能

拡張モデル

マイグレーション

  1. 書き換える
    • assertEqualsの引数変更...
    • Rule,RunnerはExtensionに書き換え
  2. マイグレーションモジュール(Junit vintage使用)
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1