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
修飾子 | コンストラクタと説明 |
---|---|
protected |
AbstractHttpRequestTestTemplate()
コンストラクタ。
|
|
AbstractHttpRequestTestTemplate(java.lang.Class<?> testClass)
コンストラクタ。
|
修飾子とタイプ | メソッドと説明 |
---|---|
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)
全アサートを実行する。
|
protected void |
assertContentFileName(INF testCaseInfo,
HttpResponse response,
ExecutionContext context)
コンテンツディスポジション・ヘッダに指定されたファイル名をアサートする。
|
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)
テストケース情報を作成する。
|
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, createHttpRequestWithConversion, createHttpServer, createHttpServer, deleteHtmlResourceFile, execute, execute, getAbsoluteCssUriPrefix, getDumpFile, getFileFilter, getListMap, getListParamMap, 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(java.lang.String sheetName)
sheetName
- テスト対象のシート名public void execute(java.lang.String sheetName, boolean shouldSetUpDb)
sheetName
- シート名shouldSetUpDb
- データベースのセットアップ要否public void execute(java.lang.String sheetName, Advice<INF> advice)
sheetName
- テスト対象シート名advice
- 実行前後の処理を実装したAdvice
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)
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