Package nablarch.test.core.http
Class AbstractHttpRequestTestTemplate<INF extends TestCaseInfo>
java.lang.Object
nablarch.test.event.TestEventDispatcher
nablarch.test.core.http.HttpRequestTestSupport
nablarch.test.core.http.AbstractHttpRequestTestTemplate<INF>
- Type Parameters:
INF
- テストケース情報の型
- Direct Known Subclasses:
BasicHttpRequestTestTemplate
@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 {
-
Nested Class Summary
Nested classes/interfaces inherited from class nablarch.test.core.http.HttpRequestTestSupport
HttpRequestTestSupport.HtmlResourceExtensionFilter
-
Field Summary
Fields inherited from class nablarch.test.core.http.HttpRequestTestSupport
testClass
Fields inherited from class nablarch.test.event.TestEventDispatcher
testName
-
Constructor Summary
ModifierConstructorDescriptionprotected
コンストラクタ。AbstractHttpRequestTestTemplate
(Class<?> testClass) コンストラクタ。 -
Method Summary
Modifier and TypeMethodDescriptionprotected void
afterExecuteRequest
(INF testCaseInfo, ExecutionContext context, Advice<INF> advice) 各業務テストコードの拡張ポイント
テスト対象リクエストの実行後に呼び出される。処理が不要であれば空実装でかまわない。protected void
assertAll
(INF testCaseInfo, Map<String, String> testCaseParams, ExecutionContext context, HttpResponse response) 全アサートを実行する。
以下の項目についてアサートを実施する。 HTTPステータスコードおよびメッセージID リクエストスコープの値検証 検索結果の検証 テーブル更新結果の検証 フォワード先URI メッセージ同期送信で送信されたメッセージ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
(String sheetName, Map<String, String> testCaseParams) テストケース情報を作成する。protected INF
createTestCaseInfo
(String sheetName, Map<String, String> testCaseParams, List<Map<String, String>> contexts, List<Map<String, String>> requests, List<Map<String, String>> expectedResponses, List<Map<String, String>> cookie) テストケース情報を作成する。protected INF
createTestCaseInfo
(String sheetName, Map<String, String> testCaseParams, List<Map<String, String>> contexts, List<Map<String, String>> requests, List<Map<String, String>> expectedResponses, List<Map<String, String>> cookie, List<Map<String, String>> queryParams) テストケース情報を作成する。void
execute()
テストを実行する。
実行前後に特別な処理が不要な場合は、このメソッドを使用する。void
execute
(boolean shouldSetUpDb) テストを実行する。 データベースのセットアップ要否を指定できる。void
テストを実行する。
実行前後に特別な処理が不要な場合は、このメソッドを使用する。void
テストを実行する。 データベースのセットアップ要否を指定できる。void
テストを実行する。 テスト前後に特別な準備処理や結果確認処理が必要な場合はこのメソッドを使用する。void
テストを実行する。void
テストを実行する。 テスト前後に特別な準備処理や結果確認処理が必要な場合はこのメソッドを使用する。void
テストを実行する。protected void
テストケースを実行する。protected abstract String
ベースURIを返却する。getCachedListMap
(String sheetName, String listMapName) キャッシュからLIST_MAPを取得する。
キャッシュにない場合は、データシートから取得しメモリ上にキャッシュする。protected void
準備を行う。protected void
setUpDbForTestCase
(INF testCaseInfo) テストケース毎のデータベースセットアップを行う。protected void
setUpMessage
(INF testCaseInfo, Map<String, String> testCaseParams) メッセージ同期送信のリクエスト単体テストを実行するための準備を行うMethods inherited from class nablarch.test.core.http.HttpRequestTestSupport
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, getParamMap, getTestSupportHandler, initializeIfNotYet, is3XXStatusCode, prepareHandlerQueue, resetHttpServer, rewritePath, rewriteResourceFile, setDumpFile, setHttpHeader, setToken, setUpDb, setUpDb, setValidToken
Methods inherited from class nablarch.test.event.TestEventDispatcher
dispatchEventOfAfterTestClass, dispatchEventOfAfterTestMethod, dispatchEventOfBeforeTestClassAndBeforeSuit, dispatchEventOfBeforeTestMethod, getMethodName
-
Constructor Details
-
AbstractHttpRequestTestTemplate
protected AbstractHttpRequestTestTemplate()コンストラクタ。 -
AbstractHttpRequestTestTemplate
コンストラクタ。- Parameters:
testClass
- テストクラス
-
-
Method Details
-
execute
public void execute()テストを実行する。
実行前後に特別な処理が不要な場合は、このメソッドを使用する。 -
execute
テストを実行する。
実行前後に特別な処理が不要な場合は、このメソッドを使用する。- Parameters:
sheetName
- テスト対象のシート名
-
execute
public void execute(boolean shouldSetUpDb) テストを実行する。 データベースのセットアップ要否を指定できる。- Parameters:
shouldSetUpDb
- データベースのセットアップ要否
-
execute
テストを実行する。 データベースのセットアップ要否を指定できる。- Parameters:
sheetName
- シート名shouldSetUpDb
- データベースのセットアップ要否
-
execute
テストを実行する。 テスト前後に特別な準備処理や結果確認処理が必要な場合はこのメソッドを使用する。- Parameters:
advice
- 実行前後の処理を実装したAdvice
-
execute
テストを実行する。 テスト前後に特別な準備処理や結果確認処理が必要な場合はこのメソッドを使用する。- Parameters:
sheetName
- テスト対象シート名advice
- 実行前後の処理を実装したAdvice
-
execute
テストを実行する。- Parameters:
advice
- コールバックshouldSetUpDb
- データベースのセットアップ要否
-
execute
テストを実行する。- Parameters:
sheetName
- シート名advice
- コールバックshouldSetUpDb
- データベースのセットアップ要否
-
executeTestCase
protected void executeTestCase(String sheetName, Map<String, String> testCaseParams, Advice<INF> advice) テストケースを実行する。- Parameters:
sheetName
- シート名testCaseParams
- テストケースパラメータadvice
- 実行前後の処理を実装したAdvice
-
clearPreviousTestData
テストで使用するデータのキャッシュをクリアする- Parameters:
testCaseInfo
- テストケース情報
-
setUp
準備を行う。- Parameters:
testCaseInfo
- テストケース情報testCaseParams
- テストケースパラメータ
-
setUpDbForTestCase
テストケース毎のデータベースセットアップを行う。- Parameters:
testCaseInfo
- テストケース情報
-
setUpMessage
メッセージ同期送信のリクエスト単体テストを実行するための準備を行う- Parameters:
testCaseInfo
- テストケース情報testCaseParams
- テストケースパラメータ
-
createTestCaseInfo
テストケース情報を作成する。- Parameters:
sheetName
- シート名testCaseParams
- テストケースパラメータ- Returns:
- 作成したテストケース情報
-
createTestCaseInfo
protected INF createTestCaseInfo(String sheetName, Map<String, String> testCaseParams, List<Map<String, String>> contexts, List<Map<String, String>> requests, List<Map<String, String>> expectedResponses, List<Map<String, String>> cookie, List<Map<String, String>> queryParams) テストケース情報を作成する。- Parameters:
sheetName
- シート名testCaseParams
- テストケースパラメータcontexts
- コンテキスト全件requests
- リクエスト全件expectedResponses
- 期待するレスポンス全件cookie
- 本テストで使用するクッキー情報queryParams
- 本テストで使用するクエリパラメータ情報- Returns:
- 作成したテストケース情報
-
createTestCaseInfo
protected INF createTestCaseInfo(String sheetName, Map<String, String> testCaseParams, List<Map<String, String>> contexts, List<Map<String, String>> requests, List<Map<String, String>> expectedResponses, List<Map<String, String>> cookie) テストケース情報を作成する。- Parameters:
sheetName
- シート名testCaseParams
- テストケースパラメータcontexts
- コンテキスト全件requests
- リクエスト全件expectedResponses
- 期待するレスポンス全件cookie
- 本テストで使用するクッキー情報- Returns:
- 作成したテストケース情報
-
createExecutionContext
ExecutionContextを生成する。- Parameters:
testCaseInfo
- テスト情報- Returns:
- ExecutionContextインスタンス
-
createHttpRequest
HTTPRequestパラメータを生成する。- Parameters:
testCaseInfo
- テスト情報- Returns:
- HttpRequestインスタンス
-
assertAll
protected void assertAll(INF testCaseInfo, Map<String, String> testCaseParams, ExecutionContext context, HttpResponse response) 全アサートを実行する。
以下の項目についてアサートを実施する。- HTTPステータスコードおよびメッセージID
- リクエストスコープの値検証
- 検索結果の検証
- テーブル更新結果の検証
- フォワード先URI
- メッセージ同期送信で送信されたメッセージ
- Parameters:
testCaseInfo
- テストケース情報testCaseParams
- テストケースパラメータcontext
- ExecutionContextインスタンスresponse
- HttpResponseインスタンス
-
assertResponse
HTTPレスポンスオブジェクトの内容をアサートする。- Parameters:
testCaseInfo
- テストケース情報response
- レスポンスオブジェクト
-
assertContentLength
コンテンツレングス・ヘッダの値をアサートする。- Parameters:
testCaseInfo
- テストケース情報context
- ExecutionContext
-
assertContentType
コンテンツタイプ・ヘッダの値をアサートする。- Parameters:
testCaseInfo
- テストケース情報response
- HTTPレスポンス
-
assertContentFileName
protected void assertContentFileName(INF testCaseInfo, HttpResponse response, ExecutionContext context) コンテンツディスポジション・ヘッダに指定されたファイル名をアサートする。 コンテンツタイプがHTMLの場合はアサートしない。- Parameters:
testCaseInfo
- テストケース情報response
- HTTPレスポンスcontext
- ExecutionContext
-
assertForwardUri
フォワード先URIをアサートする。- Parameters:
testCaseInfo
- テストケース情報
-
getCachedListMap
キャッシュからLIST_MAPを取得する。
キャッシュにない場合は、データシートから取得しメモリ上にキャッシュする。- Parameters:
sheetName
- データシート名listMapName
- LIST_MAP名- Returns:
- LIST_MAP
-
getBaseUri
ベースURIを返却する。- Returns:
- ベースURI
-
beforeExecuteRequest
各業務テストコードの拡張ポイント
テスト対象リクエストの実行前に呼び出される。- Parameters:
testCaseInfo
- テストケース情報context
- ExecutionContextインスタンスadvice
- 実行前後の処理を実装したAdvice
-
afterExecuteRequest
各業務テストコードの拡張ポイント
テスト対象リクエストの実行後に呼び出される。処理が不要であれば空実装でかまわない。- Parameters:
testCaseInfo
- テストケース情報context
- ExecutionContextインスタンスadvice
- 実行前後の処理を実装したAdvice
-