検索
連載

JUnitとEclipseを使って学ぶ、“テスト”の常識Webアプリの常識をJSPとStrutsで身につける(10)(4/4 ページ)

本連載は、JSP/サーブレット+StrutsのWebアプリケーション開発を通じて、Java言語以外(PHPやASP.NET、Ruby on Railsなど)の開発にも通用するWebアプリケーション全般の広い知識・常識を身に付けるための連載です

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

テスト実行!

 JUnitActionTest.javaを右クリックし、[実行]→[JUnit テスト]を選択します。JUnitが起動し、テストが実行されます。

図5 Eclipseでテスト実行!
図5 Eclipseでテスト実行!

 [JUnit]ビューが起動して、JUnit実行結果が表示されます。ここで赤茶色のバーが[JUnit]ビューに表示されると、“テスト失敗”、緑のバーだと“テスト成功”です。

図6 テスト失敗!
図6 テスト失敗!

 JUnitAction.javaの処理では、値を和暦に変換処理しているため、結果は失敗となります。そして、障害個所と内容が[障害トレース]に表示されます。

 では、“テスト成功”にするため、ソースコードの予想結果である「2009年6月25日」を「平成21年6月25日」と変更し、もう一度テストを実行してみてください。

JUnitActionTest.java(20行目)
assertEquals("平成21年6月25日",getSession().getAttribute("wareki_ymd"));

注意! 「テストの予想結果を変えてはいけない」

実際のプログラム開発では、予想結果を変更して成功させることはありません。正確な予想結果をテストクラスに実装し、エラーの場合にソースコードの改修を行って成功させます。


 すると、実行されたテストプログラムが成功し、緑のバーに変わったのが分かると思います。

図7 テスト成功!
図7 テスト成功!

テスト済みWebアプリを動かす

 JUnitで確認ができたところで、Webアプリケーションとしてで動かしてみましょう。

 連載第2回のときと同様に、Eclipseを起動します。次に、[プロジェクト・エクスプローラー]の「Hello」を選択して右クリックして、[リフレッシュ]を選択します。Eclipseで[プロジェクト]の[クリーン]を選択して、Helloプロジェクトのコンパイルが完了したら、Eclipse上から「Tomcat起動」アイコン(猫マーク)を押して、Tomcatを起動してください。

 正常に起動したことを確認したら、Webブラウザで「http://localhost:8080/hello/pages/JUnit_Input.jsp」にアクセスしてください。すると、下記のような画面が表示されます。

図8 サンプルアプリの起動
図8 サンプルアプリの起動

 生年月日を入力する画面が表示されるので、8けたの数字を入力してOKボタンを押してみてください。すると、結果画面に和暦が表示されることが分かると思います。

図9 和暦が表示
図9 和暦が表示

タグで条件分岐できる、Strutsの<logic>タグとは

 次に、入力画面で今日の日付け(PCの時刻)に合わせて入力してみてください。図10では、「20090625」と入力しました。

図10 表示結果が変わった
図10 表示結果が変わった

 すると、結果画面で、表示結果が変わったのが分かるかと思います。内容が変わった理由としては、Strutsの<logic>タグを使って、判定処理を行っているからです。

JUnit_Result.jsp
……省略……
<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>タグ

 <logic:equal>タグは属性で指定したプロパティの値がvalue属性の値と同じ場合、タグ内の処理を実行します。name属性にアクションフォームBeanを指定します。アクションフォームBeanについては、前回記事「Hibernateで覚えるO/RマッピングとBeanの常識」をご参照ください。

<logic:Notqual>タグ

 <logic:Notqual>タグは<logic:equal>の逆判定です。属性で指定したプロパティの値がvalue属性の値と違う場合、タグ内の処理を実行します。

 そのほかの属性に関しては、<logic:equal>と同様の意味です。

次回は、Webアプリ脆弱性の常識

 次回は、Webアプリケーションにおける脆弱性への対策と、セキュリティについて説明していこうと思います。お楽しみに。

 今回作成したサンプルは、こちらからダウンロードできます。

プロフィール

中﨑 直樹(なかざき なおき)
株式会社メセナ・ネットコム所属

自分の得意な技術や知識を身に付けることで、信頼されるSE(真の技術者)となれるよう日々精進している。現在は、Strutsを使った予約システムの開発を担当



Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る