プロジェクト

全般

プロフィール

JUnitでサーブレットのテスト

Edit

使用モジュール

サーブレットのテストには、「Spring Mock」ライブラリに含まれている以下のクラスを用いる。

  • MockHttpServletRequest
  • MockHttpServletResponse
Edit

ライブラリのダウンロード

以下のファイルをダウンロードする。

Edit

プロジェクトへの設定

1. プロジェクトを右クリック->[ビルド・パス]->[ビルド・パスの構成]をクリックする。
2. [ライブラリ]タブに切り替え->[Jar追加]をクリックする。
3. ダウンロードしたライブラリを設定する。

Edit

テストクラスの実装

// ------------------------------------------------------
// ○事前準備

// 1. サーブレットの生成
// ※テストしたいサーブレットを使用する。
XXXServlet servlet = new XXXServlet();

// 2. リクエスト、レスポンスの生成
MockHttpServletRequest req = new MockHttpServletRequest();
MockHttpServletResponse res = new MockHttpServletResponse();

// 3. リクエスト通信方式をPOSTに設定
// ※ 画面でいう<form method="post">の代わりになるもの
req.setMethod("POST");

// ------------------------------------------------------
// ○入力値の設定

// 4. リクエストパラメータを設定
// ※ 画面でいう<input name="xxx" value="xxx"/>の代わりになるもの
req.setParameter("args1", "1");
req.setParameter("args2", "2");

// ------------------------------------------------------
// ○実行

// 5. サーブレットの実行
try {
    servlet.init();
    servlet.doPost(req, res);
    servlet.destroy();
}
catch (Exception e) {
    e.printStackTrace();
}

// ------------------------------------------------------
// ○結果の確認

// 6. サーブレット内でセッションに設定したコンテナ情報の取得
// ※取得したオブジェクト(container)は任意で確認する。
HttpSession session = req.getSession();
SampleContainer container = (SampleContainer)session.getAttribute("value"); // ←※サーブレット(XXXServlet)内部で、セッションに、"value"というキーの情報が設定されていること前提。

// 7. 次に表示するページの取得
String nextPage = res.getForwardedUrl();
System.out.println("Next Page : " + nextPage); // ←※取得したページをコンソールで確認してるだけ
Edit

データのDump

オブジェクトデータに格納されたデータを確認するためには、以下を実施する。

Data-dump

Edit

img_junit_servlet_001.png (102 KB) Delete Redmine Admin, 2016/03/24 00:04

新しいファイル

他の形式にエクスポート: PDF HTML TXT