ServletUnitAdvertisementServletUnitとは
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ラボ サイト検索Y!ログール |