こんにちは。beaglesoftの真鍋です。
私はJavaでユニットテストを書くことが大好きです。ユニットテストがあるから、リファクタリングも自信を持って行えるし、設計も疎結合になるからです。この辺は、いぜんRailsでチーム開発をしていたときにも同じでした。もっとも、Railsではinterfaceという概念がないため、テスタビリティの側面で議論していました。
さて、ユニットテストですが、単純なシステムにテストを追加する、たとえば四則演算のテストなどならテクニックなどは必要ないと思いますが、データベースへの接続や内部の状態、外部のシステムとの連携といった要素が入ってきた時点でハードルが上がります。
ハードルが上がるのですが、すでにベストプラクティスが用意されています。そういったベストプラクティスを集めたような書籍がJUnit実践入門になります。
JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)
- 作者: 渡辺修司
- 出版社/メーカー: 技術評論社
- 発売日: 2012/11/21
- メディア: 単行本(ソフトカバー)
- 購入: 14人 クリック: 273回
- この商品を含むブログ (68件) を見る
内容としては、最初の方でJUnitの基本的な利用方法が説明されています。その後、JUnitの各機能について説明がされています。特にカスタマイズの方法はJUnitのソースコードを読むなどしないといけないのだろうと思うのですが、サンプルコードを試すことで比較的容易に理解できます。
また、データベースを利用したテストやAndroidでのテストなどにつながり、カバレッジの測定まで説明されています。その後には開発プロセスごとのテストと継続的インテグレーション(CI)関連の説明となっています。
非常に幅広い内容をカバーしていますが、一通りわかりやすく実践的な内容となっています。特に演習問題と言うことでケーススタディーができることは、とてもありがたいです。自分で解いてみるのも良いですが、サンプルとしてケース毎のコードを確認してみると自分が抱えている問題に関する道筋が見えてくることもあります。
願わくばこの書籍のGroovy版がほしいですね。あまり内容は変わらないと思いますが、Spockを利用したユニットテストに関する書籍が出てくれると体系立てて理解できてありがたいと思います。