まず、Eclipseを起動して、[パッケージ・エクスプローラー]で「JUnitAction.java」を右クリックし、[新規]→[JUnit テスト・ケース]を選択します。
[新規 JUnit テスト・ケース]ダイアログが表示されるので、[完了]ボタンを押してください。
ポップアップ画面で、JUnit 3がビルドパスに存在しないと表示されるので、デフォルトのまま[OK]ボタンを選択します。
すると、図4のような画面が表示されたかと思います。
「JUnitAction.java」と同パッケージに、「JUnitActionTest.java」が作成されているのと、ビルドパスに「JUnit 3」が追加されているのが分かると思います。
次に、作成された「JUnitActionTest.java」を開き、以下のように編集してください。
package junit;
import servletunit.struts.MockStrutsTestCase;
public class JUnitActionTest extends MockStrutsTestCase {
public JUnitActionTest(String testName) {
super(testName);
}
public void setUp() throws Exception {
super.setUp();
}
public void testSuccessfulLogin() {
addRequestParameter("seireki_ymd","20090625");
setRequestPathInfo("/JUnit");
actionPerform();
verifyForward("success");
verifyForwardPath("/pages/JUnit_Result.jsp");
assertEquals("2009年6月25日",getSession().getAttribute("wareki_ymd"));
verifyNoActionErrors();
}
}
赤文字になっている部分(20行目の「assertEquals」)がJUnitで用意されているテスト判別のためのメソッドです。
このほかにも、JUnit 3には、下記のようなメソッドが用意されています。
| メソッド | 処理概要 | |
|---|---|---|
| ssertEquals(smp1, smp2) | smp1、2が同じ値かどうかを判別するメソッド。違う場合は“テスト失敗”になる | |
| assertEquals(msg, smp1, smp2) | 「ssertEquals」と同様の判定を行う。値が違う場合はメッセージとしてmsgを表示 | |
| assertTrue(boolean) | 引数がtrueかどうか判別するメソッド。falseの場合は“テスト失敗”になる | |
| assertTrue(String, boolean) | 「assertTrue」と同様の判定を行う。falseの場合は、メッセージとしてStringの値を表示 | |
| assertFalse(boolean) | 引数がfalseかどうか判別するメソッド。trueの場合は“テスト失敗”になる | |
| assertFalse(String, boolean) | 「assertFalse」と同様の判定を行う。trueの場合はメッセージとしてStringの値を表示 | |
| assertNotNull(Object) | 引数がNotNullかを判定するメソッド。Nullだった場合は“テスト失敗”になる | |
| assertNotNull(String, Object) | 「assertFalse」と同様の判定を行う。Nullだった場合はメッセージとしてStringの値を表示 | |
| assertNull(Object) | 引数がNullかどうか判別。Nullではない場合は“テスト失敗”になる | |
| assertNull(String, Object) | 「assertNull」と同様の判定を行う。Nullでなかった場合は、メッセージとしてStringの値を表示 | |
| assertSame(Object1, Object2) | Object1、2が同じオブジェクトを参照しているか判別するメソッド。同じオブジェクトでなかった場合は“テスト失敗”になる | |
| assertSame(String, Object1, Object2) | 「assertSame」と同様の判定を行う。同じオブジェクトでなかった場合はメッセージとしてStringの値を表示 | |
| assertNotSame(Object1, Object2) | Object1、2が同じオブジェクトを参照していないか判別するメソッド。同じオブジェクトだった場合は“テスト失敗”になる | |
| assertNotSame(String, Object1, Object2) | 「assertNotSame」と同様の判定を行う。同じオブジェクトだった場合はメッセージとしてStringの値を表示 | |
| fail( ) | 強制的に“テスト失敗”になる | |
| fail(String) | 「「fail」と同様の判定を行う。“テスト失敗”の際、メッセージとしてStringの値を表示 | |
今回は、テスト入力値が「20090625」の場合としてJUnitAction.javaの処理をテスト実行しています。
addRequestParameter("seireki_ymd","20090625");
そして、処理を実行した戻り値と予想結果である「2009年6月25日」を比較するテストとなっています。
assertEquals("2009年6月25日",getSession().getAttribute("wareki_ymd"));
次ページでは、いよいよテストを実行してみましょう。Strutsの<logic>タグについても解説します。
Copyright © ITmedia, Inc. All Rights Reserved.