【レポート】
JavaOne 2006 - Kent Beck氏ユニットテストフレームワークの大御所JUnit 4の新機能語る
2006/05/18
JUnitはJavaプログラムでユニットテストを行うためのフレームワークを提供するツールであり、Javaアプリケーション開発者の間で古くから広く使われてきた。しかしJUnitのテストコードの記述手法は現在のJavaにとっては多少古いスタイルであり、ここ最近ではTestNGなどの新しく登場したテストツールにそのシェアを譲りつつあった。そこでJUnitを提供するJUnit.orgでは今年2月、アーキテクチャを全面的に作り直し、新しいスタイルを採り入れたJUnit 4を公開した。
サンフランシスコで開催中の2006 JavaOne Conferenceでは17日(現地時間)、JUnitの開発者であるKent Beck氏とAlberto Savoia氏による「JUnit 4 and Java SE 5: Better Testing by Design」というタイトルのテクニカルセッションが行われ、JUnitの最新版であるJUnit 4の新機能や、今後JUnitが目指していく方向性などの紹介が行われた。
セッションではまずAlberto Savoia氏がマイクを取り、「What is Developer Testing?」という問いかけをもとに、開発におけるテストの在り方について語った。その中で同氏は、現在は"理論上は開発テストが推奨されているが、現実に行っているのは一部のマイノリティだけである"という矛盾が発生していると指摘した。その上で、テスト工程を開発サイクル中に正しく位置付け、それを簡潔行えるようにすることが重要であると説いた。そこで登場するのがJUnit 4や、両氏の唱える"JUnitエコシステム"である。
Savoia氏からマイクを渡されたKent Beck氏は、まずJUnitの最新版であるJUnit 4の新機能を紹介した。それによれば、JUnit 4には主に次のような特徴を持っているという。
- 特定のクラスを継承する必要がない
- @Before / @Afterアノテーションにより条件を指定できる
- テストコードは@Testアノテーションで指定する
- 例外は「expected=XXX」のように指定する
- 前方および後方互換性を持つ
これまでのJUnitに比べて特に大きく変更された点は、何といってもアノテーションを活用してプログラム本体とテストコードの依存性を最小限に抑えることができるようになったことだろう。これまでのJUnitではテストコードを記述する際に特定のクラスを継承しなければならなかったり、テストメソッドの名前が特定の文字列で始まっていなければならないなどの制限があり、これがJUnitの使用を多少煩わしいものにしていた。一方でアノテーションを活用したテストコードの記述手法TestNGなどのテストツールで採用されており、開発者からの高い支持を集めている。アノテーションの採用によって、元来のJUnitの持つ強力なテストフレームワークをより容易に利用できるようになった。
続いて同氏は、JUnitは単なるJavaプログラムのテストツールではなく、エコシステムとして成長していると強調した。JUnitは、多くのIDEやテスト環境でサポートされており、多くの開発者やコミュニティ、ユーザグループによって支持されている。これらを基盤にして、JUnitはJavaプラットフォームだけに留まらず広い範囲で開発テストをサポートしていく考えだという。一例を挙げれば、JUnitだけでなく多くの"*Unit"フレームワークを提供するといったアイデアがある。
ここ数年は勢いを弱めていたとはいえ、JUnitが単体テストツールとしてのデファクトスタンダードであることに変わりはない。JUnit 4の登場によって、JUnitが元来持つ強固なフレームワークを新しいスタイルで利用できるようになり、より実用性の高いツールへと生まれ変わったといえるだろう。なお、JUnit 4はCommon Public License Version 1.0のもとオープンソースで公開されている。
関連記事
- @Test でユニットテスト - 新生 JUnit 4.0 公開[2006/2/16]
関連サイト
ヘッドライン
- IPA、OSS情報データベース「OSS iPedia」を刷新[18:55 3/19]プログラミング
- 東北大、鉄系高温超伝導体におけるディラック電子的振る舞いの観測に成功[18:05 3/19]エレクトロニクス
- 東芝、新潟県柏崎市で新型2次電池量産工場の建設を開始[17:58 3/19]エレクトロニクス
- Symbian、GCCでコンパイラ対応プロジェクト「Software Freedom Fighters」[17:49 3/19]プログラミング
- 伊藤忠商事、戸田工業と共同で北米にリチウムイオン電池正極材工場を建設[17:27 3/19]エレクトロニクス
- 昭和電工、樹脂複合材用カーボンナノチューブの量産を開始[17:04 3/19]エレクトロニクス
- 東北大、巨大超弾性歪みを有する高強度な鉄合金を開発[16:18 3/19]サイエンス
- STMicro、CryptoFirewallセキュリティ機能内蔵のSTB用SoCを開発[16:04 3/19]エレクトロニクス
- SEMI、2009年の半導体材料出荷額を発表 - 総額は前年比18.5%減の346億ドル[15:53 3/19]エレクトロニクス
- 住友大阪セメント、リチウムイオン電池向け高エネルギー密度の正極材を開発[15:37 3/19]エレクトロニクス






