ServletUnit

Advertisement

ServletUnitとは

Servletに対するテストをサポートするためのフレームワーク。Httpリクエスト、Httpレスポンスなどの挙動をエミュレート実行するため、コンテナがない環境でもテストを実行することができる。
ServletUnitはCactusのドキュメントで紹介されているモック・オブジェクト対コンテナ内テストのモック・オブジェクト戦略である。
対象がServletに限られているため適用可能範囲は広くないが、フレームワークの実装等で役に立つはず。 注)HttpUnitのServletUnitとは別物。

入手

オフィシャルサイトからバイナリを入手。

利用方法

オフィシャルサイトにアクセスするとServletUnit Cookbookというコンテンツが表示されるが、これだけ見れば利用方法はほとんど理解できる。または下記にQuickStartとして簡単なコードを掲載したので、そちらを参照。
バイナリに付属しているソースコードも、すごく単純。

QuickStart

SetKeyServlet.java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class SetKeyServlet extends HttpServlet{
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException{

        String value = (String)request.getParameter("key");
        HttpSession session = request.getSession();
        session.setAttribute("key", value);

    }
}
HttpRequestからkeyというパラメータを取得して、HttpSessionにその値を格納している。
SetKeyServletTest.java
import javax.servlet.http.HttpSession;
import junit.framework.TestCase;
import com.kizna.servletunit.HttpServletRequestSimulator;
import com.kizna.servletunit.HttpServletResponseSimulator;

public class SetKeyServletTest extends TestCase{
    public void setUp() throws Exception{
    }

    public void tearDown() throws Exception{
    }

    public void testHelloWorld() throws Exception{

        HttpServletRequestSimulator request = new HttpServletRequestSimulator();
        HttpServletResponseSimulator response = new HttpServletResponseSimulator();
        SetKeyServlet servlet = new SetKeyServlet();
        String value = "value!";
        request.addParameter("key", value);

        servlet.doGet(request, response);

        HttpSession session = request.getSession();
        assertEquals(value, (String)session.getAttribute("key"));
    }
}
HttpRequestで、パラメータkeyに対する値にvalue!を設定してサーブレットを実行。値がHttpSessionに格納されたことを確認している。
比較メソッドはJUnitのメソッドを利用。

Advertisement

ショートカット

634トップページ
このカテゴリのトップページに戻る
634ラボ

サイト検索

Google

Web サイト内

Y!ログール