【ジェイユニット】

JUnit とは?

公開:
💡 Javaプログラムの「健康診断」を自動でやってくれるお医者さん
📌 このページのポイント
JUnit テスト実行の流れ テストクラス @Test 加算テスト @Test 減算テスト @Test 除算テスト @Test 乗算テスト 実行 JUnit 5 Jupiter Engine テスト発見 テスト実行 結果収集 出力 テスト結果 ✓ 加算: OK ✓ 減算: OK ✗ 除算: NG ✓ 乗算: OK 3/4 成功
JUnit テスト実行の流れ
ひよこ ひよこ
JUnitってどういうものなの?
ペンギン先生 ペンギン先生
Javaプログラムが正しく動くかどうかを自動的にチェックしてくれるツールだよ。たとえば「1+1が2になるか」みたいな確認を、人間の代わりにやってくれるんだ
ひよこ ひよこ
テストって手動でやればいいんじゃないの?
ペンギン先生 ペンギン先生
小さなプログラムならそれでもいいけど、何千もの機能があるシステムだと、全部手動で確認するのは現実的じゃないよね。JUnitなら何百ものテストを数秒で実行できるんだ
ひよこ ひよこ
どうやってテストを書くの?
ペンギン先生 ペンギン先生
メソッドに@Testというアノテーションを付けて、期待する結果をassertEqualsなどで書くだけだよ。「この入力をしたらこの結果になるはず」というのをコードで表現するんだ
ひよこ ひよこ
JUnit 4とJUnit 5って何が違うの?
ペンギン先生 ペンギン先生
JUnit 5はJupiterという新しいエンジンを搭載していて、@ParameterizedTestで同じテストを異なるデータで繰り返し実行したり、@Nestedでテストを階層構造にまとめたりできるようになったんだ。拡張機能の仕組みも大きく改善されたよ
ひよこ ひよこ
実はJUnitってxUnitファミリーの元祖なの?
ペンギン先生 ペンギン先生
厳密にはSmalltalkのSUnitが元祖で、それをJavaに移植したのがJUnitだよ。でもJUnitの成功がきっかけで、NUnit(C#)、pytestPython)、PHPUnitなど各言語にテストフレームワークが広まったから、xUnit文化の普及に最も貢献したと言えるね
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「JUnit」って出てきたら「Javaの自動テストツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「JUnit」 = Javaユニットテスト
💬 「J」はJava、「Unit」は単体テストのこと。Kent BeckとErich Gammaが飛行機の中で作ったという伝説があるよ
← 用語集にもどる