【技術書評】JUnit実践入門 ── 体系的に学ぶユニットテストの技法

 毎週、技術書を読んで、ざっくり紹介します。今日は、渡辺 修司著『JUnit実践入門 ── 体系的に学ぶユニットテストの技法 WEB+DB PRESS plus』。

(購入はこちらから)

本書の目次

第1章 JUnitチュートリアル
第2章 ユニットテスト
第3章 テスティングフレームワーク
第4章 アサーション
第5章 テストランナー
第6章 テストのコンテキスト
第7章 テストフィクスチャ
第8章 パラメータ化テスト
第9章 ルール
第10章 カテゴリ化テスト
第11章 テストダブル
第12章 データベースのユニットテスト
第13章 Androidのテスト
第14章 コードカバレッジ
第15章 継続的テスト
第16章 テスト駆動開発
第17章 振舞駆動開発
第18章 ベーシックなテスト
第19章 アサーションとフィクスチャ
第20章 テストダブルの活用

 

紹介と感想

 JUnitの入門書として、かなり有名な本書。というか、JUnitについて本という形で体系的にまとめたものはこの書籍くらいしか知らない。2012年の紙版発売後、電子化されたというものを今回読了(奥付によると、電子版の初版は2015年1月)。

 2012年当時最新であったJUnit 4をベースとして、自動化テストの進め方を基礎から実践レベルで丁寧にレクチャーしてくれており、基本的にかなり良書であると感じる。

 ただし、月日というのは虚しいもので、現在では既にJUnit 5の時代が訪れている。しかも、そのJUnit5ですら、もうかなりのバージョンアップを経てきている。2023年11月現時点での最新版は5.10.0が安定版だ。

 とはいえ、JUnitを使用するプロジェクトに置いては、いまだにJUnit 4を使用しているようなプロジェクトも珍しくはないだろうということと、JUnit後方互換性が一貫して存在しているため、ひとまずJUnitの入り口としてこの書籍を選ぶのは間違いではないと思われる。

 実際、私も読んでみた所感としては、JUnit 4の書き方というのだけでなく、自動テストを行う目的、テスト技法や、テストケースの分類の仕方、テストに欠かせないフィクスチャセットアップの方針など、汎用的な知識の得られる書籍であったと感じられた。

 ただ、やはりJUnit 5を使用するとなったときには、知識不足感は否めないし、JUnit 5で採用された新たな構文については、より直感的でわかりやすい方向に進化しているものもあり、キャッチアップをしておくのが重要であろう。@BeforeEachアノテーションなどはより直感的に使用しやすくなったし、assertThatが引数を実測値のみ取るようになったのもかなり分かりやすくなったように思う。

 以下、JUnit 4とJUnit 5についての違いなどをまとめた記事などを参照する。本を読み、以下の記事類に目を通せば、JUnit 5も十分に取り扱うことが可能だろう。

 

JUnit 4からJUnit 5に移行する:重要な違いと利点

https://blogs.oracle.com/otnjp/post/migrating-from-junit-4-to-junit-5-important-differences-and-benefits-ja

qiita.com

qiita.com

 

 もちろん、公式のユーザーガイドも照らし合わせるのが一番だ。書籍に書かれたアイデアを、ユーザーガイドで現状も通じるか、もっと優れたやり方がないかを見て、取捨選択するような使い方が良いのかもしれない。

junit.org

 

 海外の記事では、Migration Guideなどもかなりあり、2023年現在も多くの記事が執筆されている。日本語での文献が多くない分野ではあるが、海外のものも含めれば情報は十分多いと言えるだろう。