3.2.7. リクエスト単体テスト(同期応答メッセージ送信処理)

3.2.7.1. 概要

リクエスト単体テスト(同期応答メッセージ送信処理)では、 要求電文1件をキューに送信し、結果を同期的に受信する際の動作を擬似的に再現し、テストを行う。

補足

リクエスト単体テストそのものの概要については、 リクエスト単体テストの実施方法(同期応答メッセージ送信処理) を参照。

3.2.7.1.1. 全体像

バッチ処理の中で同期応答メッセージ送信処理を行う場合について、以下に全体像を示す。

../../../../../_images/send_sync1.png

補足

同期応答メッセージ送信処理のリクエスト単体テストを行う場合、テストケースの親クラスは以下の2クラスのうちのいずれかを継承しておく必要がある。

  • StandaloneTestSupportTemplate
  • AbstractHttpRequestTestTemplate

3.2.7.2. 主なクラス, リソース

名称 役割 作成単位
リクエスト単体テストクラス テストロジックを実装する。 テスト対象クラス(Action)につき1つ作成
Excelファイル(テストデータ) 要求電文の期待値および応答電文などの テストデータを記載する。 テストクラスにつき1つ作成
StandaloneTestSupportTemplate Action実行後に、MockMessagingContextを用いて 要求電文のアサートを実行する。
AbstractHttpRequestTestTemplate Action実行後に、MockMessagingContextを用いて 要求電文のアサートを実行する。
MessageSender 同期応答メッセージ送信処理を行う際に使用するコンポーネント。
RequestTestingMessagingProvider リクエスト単体テストにおいて、要求電文のアサート機能および応答電文の生成・返却機能を提供する。
TestDataConvertor Excelから読み込んだテストデータを編集するためのインタフェース。 必要に応じてデータ種別ごとにアーキテクトが実装する。

3.2.7.3. 構造

3.2.7.3.1. StandaloneTestSupportTemplate

Action実行後に、MockMessagingContextを用いて、要求電文のアサートを行う機能。

同期応答メッセージ送信処理のリクエスト単体テストを行う場合は、処理の形態に合わせて 本クラスもしくはAbstractHttpRequestTestTemplateを実装したテストケースを使用する必要がある。

3.2.7.3.2. AbstractHttpRequestTestTemplate

Action実行後に、MockMessagingContextを用いて、要求電文のアサートを行う機能。

同期応答メッセージ送信処理のリクエスト単体テストを行う場合は、処理の形態に合わせて 本クラスもしくはStandaloneTestSupportTemplateを実装したテストケースを使用する必要がある。

3.2.7.3.3. RequestTestingMessagingProvider

要求電文のアサートおよび、応答電文の生成・返却する機能を提供するクラス。

また、Excelに記載された要求電文の期待値と、応答電文の読み込みも実行する。

本クラスは、以下の準備処理、結果確認機能を提供する。

準備処理 結果確認
応答電文の生成 要求電文のアサート

補足

要求電文のアサートは、要求電文が送信されるたびに行うのではなく、Action実行後に一括で行う。

3.2.7.3.4. MessageSender

同期応答メッセージ送信処理で使用するコンポーネント。

主に以下の機能を提供する。

  • Actionなどの呼び出し元から渡されたパラメータから、要求電文を生成する。
  • 要求電文を元にMockMessagingContextを実行する。
  • MockMessagingContextから返却された応答電文をパースする。
  • パース結果のオブジェクトを呼び出し元に返却する。

3.2.7.3.5. TestDataConvertor

Excelから読み込んだテストデータを編集するためのインタフェース。 必要に応じてXMLやJSONなどのデータ種別ごとにアーキテクトが実装する。

実装クラスでは以下の機能を実装する。

  • Excelから読み込んだデータを任意の値に編集する。
  • 編集したデータを読み込むためのレイアウト定義データを動的に生成する。

本インタフェースを実装することで、例えばExcelに日本語で記述されたデータをURLエンコーディングする等の処理を追加可能である。

実装クラスは “TestDataConverter_<データ種別>” というキー名でテスト用のコンポーネント設定ファイルに登録する必要がある。

3.2.7.4. テストデータ

同期応答メッセージ送信処理固有のテストデータについて説明する。

3.2.7.4.1. 同期応答メッセージ送信処理

基本的な記述方法は、テストデータの書き方を参照。

補足

パディングおよびバイナリデータの扱いは、固定長ファイルと同様である。