JUnitとEclipseを使って学ぶ、“テスト”の常識:Webアプリの常識をJSPとStrutsで身につける(10)(3/4 ページ)
本連載は、JSP/サーブレット+StrutsのWebアプリケーション開発を通じて、Java言語以外(PHPやASP.NET、Ruby on Railsなど)の開発にも通用するWebアプリケーション全般の広い知識・常識を身に付けるための連載です
■EclipseからJUnitのテストクラスを作るには
まず、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のテストメソッドを16個紹介」
このほかにも、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.