JUnitActionTest.javaを右クリックし、[実行]→[JUnit テスト]を選択します。JUnitが起動し、テストが実行されます。
[JUnit]ビューが起動して、JUnit実行結果が表示されます。ここで赤茶色のバーが[JUnit]ビューに表示されると、“テスト失敗”、緑のバーだと“テスト成功”です。
JUnitAction.javaの処理では、値を和暦に変換処理しているため、結果は失敗となります。そして、障害個所と内容が[障害トレース]に表示されます。
では、“テスト成功”にするため、ソースコードの予想結果である「2009年6月25日」を「平成21年6月25日」と変更し、もう一度テストを実行してみてください。
assertEquals("平成21年6月25日",getSession().getAttribute("wareki_ymd"));
実際のプログラム開発では、予想結果を変更して成功させることはありません。正確な予想結果をテストクラスに実装し、エラーの場合にソースコードの改修を行って成功させます。
すると、実行されたテストプログラムが成功し、緑のバーに変わったのが分かると思います。
JUnitで確認ができたところで、Webアプリケーションとしてで動かしてみましょう。
連載第2回のときと同様に、Eclipseを起動します。次に、[プロジェクト・エクスプローラー]の「Hello」を選択して右クリックして、[リフレッシュ]を選択します。Eclipseで[プロジェクト]の[クリーン]を選択して、Helloプロジェクトのコンパイルが完了したら、Eclipse上から「Tomcat起動」アイコン(猫マーク)を押して、Tomcatを起動してください。
正常に起動したことを確認したら、Webブラウザで「http://localhost:8080/hello/pages/JUnit_Input.jsp」にアクセスしてください。すると、下記のような画面が表示されます。
生年月日を入力する画面が表示されるので、8けたの数字を入力してOKボタンを押してみてください。すると、結果画面に和暦が表示されることが分かると思います。
次に、入力画面で今日の日付け(PCの時刻)に合わせて入力してみてください。図10では、「20090625」と入力しました。
すると、結果画面で、表示結果が変わったのが分かるかと思います。内容が変わった理由としては、Strutsの<logic>タグを使って、判定処理を行っているからです。
……省略…… <logic:equal name="JUnitForm" property="todayflg" value="1"> <h2>おめでとうございます。</h2> </logic:equal> <logic:notEqual name="JUnitForm" property="todayflg" value="1"> <h2>誕生日にはお祝いのお言葉を送ります。</h2> </logic:notEqual> ……省略……
<logic:equal>タグは属性で指定したプロパティの値がvalue属性の値と同じ場合、タグ内の処理を実行します。name属性にアクションフォームBeanを指定します。アクションフォームBeanについては、前回記事「Hibernateで覚えるO/RマッピングとBeanの常識」をご参照ください。
<logic:Notqual>タグは<logic:equal>の逆判定です。属性で指定したプロパティの値がvalue属性の値と違う場合、タグ内の処理を実行します。
そのほかの属性に関しては、<logic:equal>と同様の意味です。
次回は、Webアプリケーションにおける脆弱性への対策と、セキュリティについて説明していこうと思います。お楽しみに。
今回作成したサンプルは、こちらからダウンロードできます。
中﨑 直樹(なかざき なおき)
株式会社メセナ・ネットコム所属
自分の得意な技術や知識を身に付けることで、信頼されるSE(真の技術者)となれるよう日々精進している。現在は、Strutsを使った予約システムの開発を担当
Copyright © ITmedia, Inc. All Rights Reserved.