JUnit
出典: フリー百科事典『ウィキペディア(Wikipedia)』
JUnitとはJavaで開発されたプログラムにおいてユニットテスト (単体テスト) の自動化を行うためのフレームワークである。JUnit単体でも動作可能だが、Apache AntやEclipseのプラグインなどからも利用可能である。アジャイルソフトウェア開発のいくつかの開発手法 (エクストリーム・プログラミングなど) でテスト重視が推奨されていることもありセットで紹介されることが多い。 JUnitは、エーリヒ・ガンマとケント・ベックが中心となって、SUnit をもとにして開発された (SUnitは、ケント・ベックが開発した、Smalltalk のためのユニットテストのフレームワークである)。 Java以外の他言語向けにもxUnitとして存在する。
目次 |
[編集] JUnitが推奨される理由
- 一度作成すればすばやくテスト可能である。
- その後はテストコードを標本とすることでバグ訂正が容易となる。
- テストコードを見れば仕様が一目瞭然となる。
- 誰でも同じテストを行えるようになる。
- 独自のテストコードによるテスト作成の手間を省ける。
- なによりも、テスト中に現れる緑色のバーが満タンになるのを見ると気分が良くなる(と作者は言っている)。
[編集] JUnitの問題点
- 仕様変更ごとにテストコードを作り直さなければならない。
(EclipseなどのIDEを使うことでテストコードの再作成によって生じる手間を軽減することもできる。)
(エクストリーム・プログラミング(XP)などのテスト駆動開発の開発形態の場合問題が解消される場合がある。なぜなら、テスト駆動開発では、テストコード自体が仕様であるという考え方に立つからである。)
- テストコードの作成に時間がかかる。
(EclipseなどのIDEを使うことでテストコードの作成を高速化させることもできる。)
(「テストは機能テストであり、内部ロジックの確認ではない」という考え方に立つと問題が解消される場合がある。)
[編集] JUnitから派生したツール/関連ツール
Java5から追加された機能 アノテーションにより、JUnitはより使いやすくなりクラス名やメソッド名にTest/testという名前をつける必要がなくなったTestNGというテスティングフレームワークも存在する。なお、このTestNG同等の機能はJUnit4でも取り入れられている。 JUnitはprivateメソッドをテストできないが、どうしてもprivateメソッドのテストを行いたいときは、JxUnitというJUnitを拡張した内部でリフレクションを利用しているテスティングフレームワークを使用することでテストできるようになる。
- TestNG - NGはNextGenerationの略とされている。アノテーションを利用してJUnitがより使いやすく。JUnit4にほぼ同等の機能が存在する。
- JxUnit - privateなメソッドもテスト可能。
- Jakarta Cactus - Servletの単体テストだけでなく、統合テストを実行できるようになる。
- MockObject - テスト用にオブジェクトを偽装する。
[編集] 関連項目
[編集] 外部リンク
カテゴリ: Java言語 | ソフトウェア開発ツール | プログラミング