@Published public class HttpRequestTestSupportHandler extends Object implements nablarch.fw.web.HttpRequestHandler
HttpRequestTestSupport.execute(Class, String, HttpRequest, ExecutionContext)
から
nablarch.fw.web.HttpServer#handle(HttpRequest, ExecutionContext)が呼ばれるが、
ここで引数にExecutionContext
を渡しても使用されない。
(nablarch.fw.Handler#handle(Object, nablarch.fw.ExecutionContext)を実装する為、
引数として用意されているだけで、実際には使用しない)
実際には内蔵サーバ内で新たに生成されたExecutionContext
が使用される。
テストクラス側で生成したExecutionContext
の情報を使用してテストを行う為に、
本ハンドラにて移送を行う。
また、コンテンツパスを指定してレスポンスを行った場合、
内蔵サーバからは一律ステータスコード200が返却される。
(JSP等のリソースに対するサーブレットフォーワードは全てこれに含まれる。)
このため、HttpResponseオブジェクトのステータスコードと、クライアントに対する
実際のレスポンスコードが一致しなくなるので、本ハンドラにHttpResponseオブジェクトのステータス
コードを保持しておき、後続のアサート処理で参照する。
ただし、リダイレクトの場合はServletAPI(javax.servlet.http.HttpServletResponse#sendRedirect(String)
)
を使用しているため、HttpResponse
にはリダイレクトのステータスコードは設定されない。
(ステータスコードの設定をコンテナに任せているため)
従って、リダイレクトの場合のステータスコードは、本クラスではなく、
コンテナが返却するレスポンスから取得する必要がある。nablarch.fw.web.handler.HttpResponseHandler#setStatusCode(HttpResponse, nablarch.fw.web.servlet.ServletExecutionContext)
,
HttpRequestTestSupport.assertStatusCode(String, int, HttpResponse)
コンストラクタと説明 |
---|
HttpRequestTestSupportHandler(HttpTestConfiguration config)
コンストラクタ。
|
修飾子とタイプ | メソッドと説明 |
---|---|
nablarch.fw.web.HttpResponse |
handle(nablarch.fw.web.HttpRequest request,
nablarch.fw.ExecutionContext context)
ExecutionContext の移送を行う。 |
void |
setContext(nablarch.fw.ExecutionContext context)
ExecutionContext を設定する。 |
void |
setMultipart(nablarch.fw.web.HttpRequest req)
マルチパート情報を設定する。
|
public HttpRequestTestSupportHandler(HttpTestConfiguration config)
config
- HttpTestConfigurationpublic nablarch.fw.web.HttpResponse handle(nablarch.fw.web.HttpRequest request, nablarch.fw.ExecutionContext context)
ExecutionContext
の移送を行う。handle
インタフェース内 nablarch.fw.Handler<nablarch.fw.web.HttpRequest,nablarch.fw.web.HttpResponse>
handle
インタフェース内 nablarch.fw.web.HttpRequestHandler
context
- nablarch.fw.web.HttpServerで生成された実際のExecutionContext
public void setContext(nablarch.fw.ExecutionContext context)
ExecutionContext
を設定する。context
- ExecutionContextpublic void setMultipart(nablarch.fw.web.HttpRequest req)
req
- 設定元のリクエスト