INF
- テストケース情報の型@Published public abstract class AbstractHttpRequestTestTemplate<INF extends TestCaseInfo> extends HttpRequestTestSupport
指定されたテストシートに定義されたテストを実行する.テンプレートの拡張が可能となるよう、
実行順序は以下のとおり。 1. データシートからテストケースリスト(testCases LISTMAP)を取得 2. 取得したテストケース分、以下を繰り返し実行 1) データベース初期化 2) ExecutionContext、HTTPリクエストを生成 3) 業務テストコード用拡張ポイント呼出(beforeExecuteRequestメソッド) 4) Tokenが必要な場合、Tokenを設定 5) テスト対象のリクエスト実行 6) 実行結果の検証 ・HTTPステータスコード および メッセージID ・HTTPレスポンス値(リクエストスコープ値) ・検索結果 ・テーブル更新結果 ・フォワード先URI ・メッセージ同期送信で送信されたメッセージ 7) 業務テストコード用拡張ポイント呼出(afterExecuteRequestメソッド) ※セッションスコープは原則利用しないため検証しない。 必要な場合afterExecuteRequestメソッドを拡張して検証すること。
TestCaseInfo
の型を総称化している。 TestCaseInfo
のサブクラスを作成し、本クラスのサブクラスでその型を指定することで、テンプレートを拡張できる。 以下に例を示す。
public abstract class SpecialHttpRequestTestTemplate extends AbstractHttpRequestTestTemplate {
HttpRequestTestSupport.HtmlResourceExtensionFilter
testClass
testName
Modifier | Constructor and Description |
---|---|
protected |
AbstractHttpRequestTestTemplate()
コンストラクタ。
|
|
AbstractHttpRequestTestTemplate(java.lang.Class<?> testClass)
コンストラクタ。
|
Modifier and Type | Method and Description |
---|---|
protected void |
afterExecuteRequest(INF testCaseInfo,
ExecutionContext context,
Advice<INF> advice)
各業務テストコードの拡張ポイント
テスト対象リクエストの実行後に呼び出される。処理が不要であれば空実装でかまわない。 |
protected void |
assertAll(INF testCaseInfo,
java.util.Map<java.lang.String,java.lang.String> testCaseParams,
ExecutionContext context,
HttpResponse response)
全アサートを実行する。
以下の項目についてアサートを実施する。 HTTPステータスコードおよびメッセージID リクエストスコープの値検証 検索結果の検証 テーブル更新結果の検証 フォワード先URI メッセージ同期送信で送信されたメッセージ |
protected void |
assertContentFileName(INF testCaseInfo,
HttpResponse response,
ExecutionContext context)
コンテンツディスポジション・ヘッダに指定されたファイル名をアサートする。
コンテンツタイプがHTMLの場合はアサートしない。
|
protected void |
assertContentLength(INF testCaseInfo,
ExecutionContext context)
コンテンツレングス・ヘッダの値をアサートする。
|
protected void |
assertContentType(INF testCaseInfo,
HttpResponse response)
コンテンツタイプ・ヘッダの値をアサートする。
|
protected void |
assertForwardUri(INF testCaseInfo)
フォワード先URIをアサートする。
|
protected void |
assertResponse(INF testCaseInfo,
HttpResponse response)
HTTPレスポンスオブジェクトの内容をアサートする。
|
protected void |
beforeExecuteRequest(INF testCaseInfo,
ExecutionContext context,
Advice<INF> advice)
各業務テストコードの拡張ポイント
テスト対象リクエストの実行前に呼び出される。 |
protected void |
clearPreviousTestData(INF testCaseInfo)
テストで使用するデータのキャッシュをクリアする
|
protected ExecutionContext |
createExecutionContext(INF testCaseInfo)
ExecutionContextを生成する。
|
protected HttpRequest |
createHttpRequest(INF testCaseInfo)
HTTPRequestパラメータを生成する。
|
protected INF |
createTestCaseInfo(java.lang.String sheetName,
java.util.Map<java.lang.String,java.lang.String> testCaseParams)
テストケース情報を作成する。
|
protected INF |
createTestCaseInfo(java.lang.String sheetName,
java.util.Map<java.lang.String,java.lang.String> testCaseParams,
java.util.List<java.util.Map<java.lang.String,java.lang.String>> contexts,
java.util.List<java.util.Map<java.lang.String,java.lang.String>> requests,
java.util.List<java.util.Map<java.lang.String,java.lang.String>> expectedResponses,
java.util.List<java.util.Map<java.lang.String,java.lang.String>> cookie)
テストケース情報を作成する。
|
protected INF |
createTestCaseInfo(java.lang.String sheetName,
java.util.Map<java.lang.String,java.lang.String> testCaseParams,
java.util.List<java.util.Map<java.lang.String,java.lang.String>> contexts,
java.util.List<java.util.Map<java.lang.String,java.lang.String>> requests,
java.util.List<java.util.Map<java.lang.String,java.lang.String>> expectedResponses,
java.util.List<java.util.Map<java.lang.String,java.lang.String>> cookie,
java.util.List<java.util.Map<java.lang.String,java.lang.String>> queryParams)
テストケース情報を作成する。
|
void |
execute()
テストを実行する。
実行前後に特別な処理が不要な場合は、このメソッドを使用する。 |
void |
execute(Advice<INF> advice)
テストを実行する。
テスト前後に特別な準備処理や結果確認処理が必要な場合はこのメソッドを使用する。
|
void |
execute(Advice<INF> advice,
boolean shouldSetUpDb)
テストを実行する。
|
void |
execute(boolean shouldSetUpDb)
テストを実行する。
データベースのセットアップ要否を指定できる。
|
void |
execute(java.lang.String sheetName)
テストを実行する。
実行前後に特別な処理が不要な場合は、このメソッドを使用する。 |
void |
execute(java.lang.String sheetName,
Advice<INF> advice)
テストを実行する。
テスト前後に特別な準備処理や結果確認処理が必要な場合はこのメソッドを使用する。
|
void |
execute(java.lang.String sheetName,
Advice<INF> advice,
boolean shouldSetUpDb)
テストを実行する。
|
void |
execute(java.lang.String sheetName,
boolean shouldSetUpDb)
テストを実行する。
データベースのセットアップ要否を指定できる。
|
protected void |
executeTestCase(java.lang.String sheetName,
java.util.Map<java.lang.String,java.lang.String> testCaseParams,
Advice<INF> advice)
テストケースを実行する。
|
protected abstract java.lang.String |
getBaseUri()
ベースURIを返却する。
|
protected java.util.List<java.util.Map<java.lang.String,java.lang.String>> |
getCachedListMap(java.lang.String sheetName,
java.lang.String listMapName)
キャッシュからLIST_MAPを取得する。
キャッシュにない場合は、データシートから取得しメモリ上にキャッシュする。 |
protected void |
setUp(INF testCaseInfo,
java.util.Map<java.lang.String,java.lang.String> testCaseParams)
準備を行う。
|
protected void |
setUpDbForTestCase(INF testCaseInfo)
テストケース毎のデータベースセットアップを行う。
|
protected void |
setUpMessage(INF testCaseInfo,
java.util.Map<java.lang.String,java.lang.String> testCaseParams)
メッセージ同期送信のリクエスト単体テストを実行するための準備を行う
|
assertApplicationMessageId, assertApplicationMessageId, assertApplicationMessageId, assertApplicationMessageId, assertEntity, assertForward, assertObjectArrayPropertyEquals, assertObjectListPropertyEquals, assertObjectPropertyEquals, assertSqlResultSetEquals, assertSqlRowEquals, assertStatusCode, assertTableEquals, assertTableEquals, assertTableEquals, copyHtmlResourceToDumpDir, createExecutionContext, createHttpRequest, createHttpRequest, createHttpRequestWithConversion, createHttpRequestWithConversion, createHttpRequestWithConversion, createHttpServer, createHttpServer, deleteHtmlResourceFile, execute, execute, getAbsoluteCssUriPrefix, getDumpFile, getFileFilter, getListMap, getListParamMap, getParam, getParamMap, getParamMap, getTestSupportHandler, initializeIfNotYet, is3XXStatusCode, prepareHandlerQueue, resetHttpServer, rewritePath, rewriteResourceFile, setDumpFile, setHttpHeader, setToken, setUpDb, setUpDb, setValidToken
dispatchEventOfAfterTestClass, dispatchEventOfAfterTestMethod, dispatchEventOfBeforeTestClassAndBeforeSuit, dispatchEventOfBeforeTestMethod, getMethodName
protected AbstractHttpRequestTestTemplate()
public AbstractHttpRequestTestTemplate(java.lang.Class<?> testClass)
testClass
- テストクラスpublic void execute()
public void execute(java.lang.String sheetName)
sheetName
- テスト対象のシート名public void execute(boolean shouldSetUpDb)
shouldSetUpDb
- データベースのセットアップ要否public void execute(java.lang.String sheetName, boolean shouldSetUpDb)
sheetName
- シート名shouldSetUpDb
- データベースのセットアップ要否public void execute(Advice<INF> advice)
advice
- 実行前後の処理を実装したAdvice
public void execute(java.lang.String sheetName, Advice<INF> advice)
sheetName
- テスト対象シート名advice
- 実行前後の処理を実装したAdvice
public void execute(Advice<INF> advice, boolean shouldSetUpDb)
advice
- コールバックshouldSetUpDb
- データベースのセットアップ要否public void execute(java.lang.String sheetName, Advice<INF> advice, boolean shouldSetUpDb)
sheetName
- シート名advice
- コールバックshouldSetUpDb
- データベースのセットアップ要否protected void executeTestCase(java.lang.String sheetName, java.util.Map<java.lang.String,java.lang.String> testCaseParams, Advice<INF> advice)
sheetName
- シート名testCaseParams
- テストケースパラメータadvice
- 実行前後の処理を実装したAdvice
protected void clearPreviousTestData(INF testCaseInfo)
testCaseInfo
- テストケース情報protected void setUp(INF testCaseInfo, java.util.Map<java.lang.String,java.lang.String> testCaseParams)
testCaseInfo
- テストケース情報testCaseParams
- テストケースパラメータprotected void setUpDbForTestCase(INF testCaseInfo)
testCaseInfo
- テストケース情報protected void setUpMessage(INF testCaseInfo, java.util.Map<java.lang.String,java.lang.String> testCaseParams)
testCaseInfo
- テストケース情報testCaseParams
- テストケースパラメータprotected INF createTestCaseInfo(java.lang.String sheetName, java.util.Map<java.lang.String,java.lang.String> testCaseParams)
sheetName
- シート名testCaseParams
- テストケースパラメータprotected INF createTestCaseInfo(java.lang.String sheetName, java.util.Map<java.lang.String,java.lang.String> testCaseParams, java.util.List<java.util.Map<java.lang.String,java.lang.String>> contexts, java.util.List<java.util.Map<java.lang.String,java.lang.String>> requests, java.util.List<java.util.Map<java.lang.String,java.lang.String>> expectedResponses, java.util.List<java.util.Map<java.lang.String,java.lang.String>> cookie, java.util.List<java.util.Map<java.lang.String,java.lang.String>> queryParams)
sheetName
- シート名testCaseParams
- テストケースパラメータcontexts
- コンテキスト全件requests
- リクエスト全件expectedResponses
- 期待するレスポンス全件cookie
- 本テストで使用するクッキー情報queryParams
- 本テストで使用するクエリパラメータ情報protected INF createTestCaseInfo(java.lang.String sheetName, java.util.Map<java.lang.String,java.lang.String> testCaseParams, java.util.List<java.util.Map<java.lang.String,java.lang.String>> contexts, java.util.List<java.util.Map<java.lang.String,java.lang.String>> requests, java.util.List<java.util.Map<java.lang.String,java.lang.String>> expectedResponses, java.util.List<java.util.Map<java.lang.String,java.lang.String>> cookie)
sheetName
- シート名testCaseParams
- テストケースパラメータcontexts
- コンテキスト全件requests
- リクエスト全件expectedResponses
- 期待するレスポンス全件cookie
- 本テストで使用するクッキー情報protected ExecutionContext createExecutionContext(INF testCaseInfo)
testCaseInfo
- テスト情報protected HttpRequest createHttpRequest(INF testCaseInfo)
testCaseInfo
- テスト情報protected void assertAll(INF testCaseInfo, java.util.Map<java.lang.String,java.lang.String> testCaseParams, ExecutionContext context, HttpResponse response)
testCaseInfo
- テストケース情報testCaseParams
- テストケースパラメータcontext
- ExecutionContextインスタンスresponse
- HttpResponseインスタンスprotected void assertResponse(INF testCaseInfo, HttpResponse response)
testCaseInfo
- テストケース情報response
- レスポンスオブジェクトprotected void assertContentLength(INF testCaseInfo, ExecutionContext context)
testCaseInfo
- テストケース情報context
- ExecutionContextprotected void assertContentType(INF testCaseInfo, HttpResponse response)
testCaseInfo
- テストケース情報response
- HTTPレスポンスprotected void assertContentFileName(INF testCaseInfo, HttpResponse response, ExecutionContext context)
testCaseInfo
- テストケース情報response
- HTTPレスポンスcontext
- ExecutionContextprotected void assertForwardUri(INF testCaseInfo)
testCaseInfo
- テストケース情報protected java.util.List<java.util.Map<java.lang.String,java.lang.String>> getCachedListMap(java.lang.String sheetName, java.lang.String listMapName)
sheetName
- データシート名listMapName
- LIST_MAP名protected abstract java.lang.String getBaseUri()
protected void beforeExecuteRequest(INF testCaseInfo, ExecutionContext context, Advice<INF> advice)
testCaseInfo
- テストケース情報context
- ExecutionContextインスタンスadvice
- 実行前後の処理を実装したAdvice
protected void afterExecuteRequest(INF testCaseInfo, ExecutionContext context, Advice<INF> advice)
testCaseInfo
- テストケース情報context
- ExecutionContextインスタンスadvice
- 実行前後の処理を実装したAdvice