S-JIS[2004-03-26]
テスト支援ツール(?)のJUnitが eclipseには標準で入っている。
mainメソッドが入った(すなわちドライバの役割をする)クラスを作っておき、
その中からテストしたいメソッドを呼び出す。
呼び出した結果が正常かどうかを判定し、失敗なら例外を発生させるメソッドがJUnitに用意されている。
@ITに詳しく出ています。
事前準備として、junit.jarをプロジェクトのビルド・パスに追加しておく必要がある。
作られたクラスのsetUp()でテスト前の初期化を行い、test●●()の中でテスト対象メソッドを呼び出し、その結果をテスト結果判定用メソッドに渡すよう実装する。
テスト結果判定用メソッドは、テスト成功の場合は正常に終了し、テスト失敗の場合は例外を発生させる。
メソッド | 説明 | 備考 |
---|---|---|
assertEquals(型 expected, 型 actual) | expectedとactualが等しい場合、テスト成功 | 「型」は、boolean・byte・char・short・int・long |
assertEquals(Object expected, Object actual) | expectedとactualが等しい(equals()を使用している模様)場合、テスト成功 | |
assertEquals(double expected, double actual, double delta) | expectedとactualの差がdeltaより小さい場合、テスト成功(浮動小数の場合、ぴったり一致するという判定は非常に怪しいからdeltaというものがあるのだろう) | float版もある |
assertNotNull(Object obj) | objがnull以外の場合、テスト成功 | |
assertNull(Object obj) | objがnullの場合、テスト成功 | |
assertSame(Object expected, Object actual) | expected==actualの場合、テスト成功 | |
assertNotSame(Object expected, Object actual) | expected!=actualの場合、テスト成功 | |
assertTrue(boolean cond) | condがtrueの場合、テスト成功 | |
assertFalse(boolean cond) | condがfalseの場合、テスト成功 | |
fail() | 常にテスト失敗 |
上記のメソッドには、第1引数に「String message」を持つメソッドも用意されている。
これは、テスト失敗の場合に「障害トレース」に指定したメッセージが表示されるもの。
「パッケージ・エクスプローラー」ビューの下方に「JUnit」という選択肢が表示されるので、それをクリックするとテスト実行結果が見られる。
上部の「実行: 1/1」は、実行したtest●●()の個数を表している。(実行したassert●●()の個数ではない)
assert●●()でテスト失敗だった場合、「失敗」に件数が表示される。
それ以外で例えば例外が発生した場合は「エラー」に件数が表示される。
テスト成功の場合はあっけないほど何も表示されないので、「エラー」と「失敗」が共に0であることを確認する。
テスト失敗の場合、「JUnit」ビューの下方の「障害トレース」ペインにスタックトレースが表示される。
message引数付きのassertを使っていた場合、そのメッセージも「障害トレース」ペイン最上部に「junit.framework.AssertionFaileError:
message」という形で表示される。
ここで表示されている(上から2行目の)テスト実行クラスの行をダブルクリックすると、その失敗が起きたソースへ移動できる。
または、「JUnit」ビューを開いて上部のをクリックすることでも再実行できる。