JUnitでサーブレットのテスト¶
使用モジュール¶
サーブレットのテストには、「Spring Mock」ライブラリに含まれている以下のクラスを用いる。
- MockHttpServletRequest
- MockHttpServletResponse
ライブラリのダウンロード¶
以下のファイルをダウンロードする。
- Spring Mock
MockHttpServletRequestとMockHttpServletResponseが入っている。
http://www.java2s.com/Code/Jar/s/Downloadspringmock206jar.htm
spring-mock-2.0.6.jar
- spring-core
Spring Mockが呼び出す。
http://www.java2s.com/Code/Jar/s/Downloadspringcore323releasejar.htm
spring-core-3.2.3.release.jar
- commons-logging
なんか、必要らしい。
http://commons.apache.org/proper/commons-logging/download_logging.cgi
commons-logging-1.2-bin.zip
プロジェクトへの設定¶
1. プロジェクトを右クリック->[ビルド・パス]->[ビルド・パスの構成]をクリックする。
2. [ライブラリ]タブに切り替え->[Jar追加]をクリックする。
3. ダウンロードしたライブラリを設定する。
テストクラスの実装¶
// ------------------------------------------------------ // ○事前準備 // 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); // ←※取得したページをコンソールで確認してるだけ
データのDump¶
オブジェクトデータに格納されたデータを確認するためには、以下を実施する。