JUnitとEclipseを使って学ぶ、“テスト”の常識:Webアプリの常識をJSPとStrutsで身につける(10)(4/4 ページ)
本連載は、JSP/サーブレット+StrutsのWebアプリケーション開発を通じて、Java言語以外(PHPやASP.NET、Ruby on Railsなど)の開発にも通用するWebアプリケーション全般の広い知識・常識を身に付けるための連載です
■テスト実行!
JUnitActionTest.javaを右クリックし、[実行]→[JUnit テスト]を選択します。JUnitが起動し、テストが実行されます。
[JUnit]ビューが起動して、JUnit実行結果が表示されます。ここで赤茶色のバーが[JUnit]ビューに表示されると、“テスト失敗”、緑のバーだと“テスト成功”です。
JUnitAction.javaの処理では、値を和暦に変換処理しているため、結果は失敗となります。そして、障害個所と内容が[障害トレース]に表示されます。
では、“テスト成功”にするため、ソースコードの予想結果である「2009年6月25日」を「平成21年6月25日」と変更し、もう一度テストを実行してみてください。
assertEquals("平成21年6月25日",getSession().getAttribute("wareki_ymd"));
注意! 「テストの予想結果を変えてはいけない」
実際のプログラム開発では、予想結果を変更して成功させることはありません。正確な予想結果をテストクラスに実装し、エラーの場合にソースコードの改修を行って成功させます。
すると、実行されたテストプログラムが成功し、緑のバーに変わったのが分かると思います。
■テスト済みWebアプリを動かす
JUnitで確認ができたところで、Webアプリケーションとしてで動かしてみましょう。
連載第2回のときと同様に、Eclipseを起動します。次に、[プロジェクト・エクスプローラー]の「Hello」を選択して右クリックして、[リフレッシュ]を選択します。Eclipseで[プロジェクト]の[クリーン]を選択して、Helloプロジェクトのコンパイルが完了したら、Eclipse上から「Tomcat起動」アイコン(猫マーク)を押して、Tomcatを起動してください。
正常に起動したことを確認したら、Webブラウザで「http://localhost:8080/hello/pages/JUnit_Input.jsp」にアクセスしてください。すると、下記のような画面が表示されます。
生年月日を入力する画面が表示されるので、8けたの数字を入力してOKボタンを押してみてください。すると、結果画面に和暦が表示されることが分かると思います。
タグで条件分岐できる、Strutsの<logic>タグとは
次に、入力画面で今日の日付け(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>タグ
<logic:equal>タグは属性で指定したプロパティの値がvalue属性の値と同じ場合、タグ内の処理を実行します。name属性にアクションフォームBeanを指定します。アクションフォームBeanについては、前回記事「Hibernateで覚えるO/RマッピングとBeanの常識」をご参照ください。
■<logic:Notqual>タグ
<logic:Notqual>タグは<logic:equal>の逆判定です。属性で指定したプロパティの値がvalue属性の値と違う場合、タグ内の処理を実行します。
そのほかの属性に関しては、<logic:equal>と同様の意味です。
次回は、Webアプリ脆弱性の常識
次回は、Webアプリケーションにおける脆弱性への対策と、セキュリティについて説明していこうと思います。お楽しみに。
今回作成したサンプルは、こちらからダウンロードできます。
プロフィール
中﨑 直樹(なかざき なおき)
株式会社メセナ・ネットコム所属
自分の得意な技術や知識を身に付けることで、信頼されるSE(真の技術者)となれるよう日々精進している。現在は、Strutsを使った予約システムの開発を担当
- JavaScript/Ajaxで知るWebアプリとスクリプトの常識
- Webアプリにおける11の脆弱性の常識と対策
- JUnitとEclipseを使って学ぶ、“テスト”の常識
- Hibernateで覚えるO/RマッピングとBeanの常識
- MySQLの常識を知りセットアップしてJSPからDB操作
- Webアプリ開発の常識、バリデーションとテンプレート
- 発掘! Webの“あるある”問題点−ステートの常識
- もはやWeb利用者の常識、“URL”の意味を理解しよう
- HTMLやStrutsに必須の“タグ”と“サブミット”の常識
- Webアプリにおけるサーバとクライアントの常識
- Strutsの常識を知り、EclipseとTomcatの環境構築
- いまさら聞けない、Webアプリケーションの常識
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Eclipseで使えるテストツールカタログ
統合開発ツールにEclipseを選択する開発現場に、テストの効率化、ソフトウェア品質の向上のヒントを提供する - これはすごい!? コード品質のカイゼン化プラグイン2種
CoolなEclipseプラグイン(24) JUnitをベースとしたテストケースを自動生成するJUnit Factoryと、コードの保守性(どれくらい読みにくいか)を数値で計れるCrap4jを紹介 - ソフトウェアの品質向上を支援するプラグイン
CoolなEclipseプラグイン(2) ソフトウェアのレビュー/テスト/デバッグを助ける「FindBugs」「djUnit」、有償製品の「Enerjy Thread Profiler」を紹介する - 快適なXPドライビングのすすめ
理論と実践は根本的に違う。本連載ではEclipseなどのツールを活用しながらXPの快適なドライビング方法を伝授する - 第4回 EclipseとJUnitによるテスティング
- 第5回 テストファーストでコードを作成する
- 第7回 Eclipse、CVS、Antを利用した継続的インテグレーション&テスト環境の構築
- 単体テストの品質をチェックするには
明日からできるプロジェクト管理(4) 実装・単体テストの品質をうまくチェックするには? 品質の考え方を概観し、その後、チェックを現実化するツールを紹介していく - Webサイト構築に必要なさまざまなテスト手法
[連載]Java初心者のためのWebシステム入門(9) Webサイトのカットオーバーに備えて行う必要のあるテスト項目と手法の概要を解説します - SeasarV2によるテスト機能
Seasar Projectの全貌を探る(4) SeasarV2にはJUnitを拡張したテストフレームワークが用意されている。実際に使ってみてそのメリットを整理する - 次世代テストフレームワークでテストを変える
Java用テストフレームワークの定番JUnitの問題点を補い、もっと簡単でEclipseプラグインも備えるオープンソース「TestNG」について、独自の機能や魅力、ほかのフレームワークとの連携、そしてJUnitからの移行方法まで徹底解説!