Flex Gateway新着情報
Governance新着情報
Monitoring API Managerこのセクションでは、モジュールの操作をテストするための、ステップごとの手順について説明します。また、実行する必要があるテストケースの基本について説明します。
モジュールのすべてのテストケースに以下の基本項目が含まれている必要があります。
テストケースクラス: テストロジックを含む Java クラス。フローを実行し、結果についてアサーションを実行します。
Mule アプリケーション XML: テストするモジュールを使用する Mule アプリケーション。
このドキュメントは、Mule 拡張アーキタイプを使用して生成されたモジュールプロジェクトに基づきます (最初の SDK プロジェクトの作成)。 この例を使用してモジュールのテスト方法を学習し、親の連動関係については上記のドキュメントを参照します。このドキュメントには、テストケースの構築に必要なすべての連動関係が記載されています。
テストケースクラスは、MuleArtifactFunctionalTestCase
から継承される必要があります。これで、Mule アプリケーション内でのモジュールのテストが可能になります。
public class BasicOperationsTestCase extends MuleArtifactFunctionalTestCase {
}
モジュールをテストするには、そのモジュールを使用する Mule アプリケーションを実行し、フローを実行して、実行結果についてアサーションを実行します。
Mule アプリケーション XML は、モジュールプロジェクトの src/test/resources
フォルダー内に配置する必要があります。
<mule xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:basic="http://www.mulesoft.org/schema/mule/basic"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/basic http://www.mulesoft.org/schema/mule/basic/current/mule-basic.xsd">
<basic:config name="basic-config" configId="configId">
<basic:connection requiredParameter="aValue" />
</basic:config>
<flow name="sayHiFlow">
<basic:say-hi person="Mariano Gonzales"/>
</flow>
<flow name="retrieveInfoFlow">
<basic:retrieve-info config-ref="basic-config"/>
</flow>
</mule>
ヒント: Mule アプリケーションの記述は、Anypoint Studio で Mule アプリケーションを作成し、生成された XML をコピーしてモジュールプロジェクト内に貼り付けることで簡単にできます。
テストケースクラスと Mule アプリケーション XML を作成したら、その 2 つのコンポーネントをバインドし、テストケースを実行する Mule アプリケーションを識別します。これを行うには、getConfigFile()
メソッドを上書きし、Mule アプリケーション XML の相対パスを含む String
を返します。
設定ファイルのパスは、module-project/src/test/resources フォルダーを基準とする相対パスです。たとえば、XML ファイルが module-project/src/test/resources/test-connector-mule-app.xml に配置されている場合、getConfigFile() メソッドは test-connector-mule-app.xml を返します。
|
public class ModuleTestCase extends MuleArtifactFunctionalTestCase {
@Override
protected String getConfigFile() {
return "test-connector-mule-app.xml";
}
}
このフェーズでは、モジュールテストケースの作成を開始するためのすべてをセットアップします。最初のテストでは、フローを実行し、出力を取得して、それに対してアサーションを実行する簡単な操作をテストするように記述します。
flowRunner("flowName")
ユーティリティメソッドを使用して、FlowRunner
(フローを実行できるユーティリティ) のインスタンスを作成します。パラメーターで識別されたフローを実行するように FlowRunner
インスタンスを設定します。
次に FlowRunner
インスタンスで run()
を実行します。次に例を示します。
Event event = flowRunner("sayHiFlow").run();
フローを実行すると、payload
、attributes
、vars
と、フローの実行に関して使用可能なすべての情報を含む Event
が返されます。
フローからストリームが返された場合は、keepStreamsOpen() メソッドをコールして、ランタイムによるストリームの終了 (フローの終了時の正常な動作です) を防止してください。keepStreamsOpen() メソッドをコールしないと、ストリームをコンシュームしようとしたときに
|
フローを実行したら、event
変数にフローの実行結果が含まれます。ペイロードの値を取得し、必要なアサーションを実行するには、この変数が必要です。
Object payloadValue = event.getMessage()
.getPayload()
.getValue();
assertThat(payloadValue, is("Hello Mariano Gonzales!!!"))
次の例は、前述のテストケース手順をまとめたものです。
@Test
public void executeSayHiOperation() throws Exception {
Event sayHiFlow = flowRunner("sayHiFlow").run(); (1)
String payloadValue = ((String) sayHiFlow
.getMessage()
.getPayload()
.getValue()); (2)
assertThat(payloadValue, is("Hello Mariano Gonzales!!!")); (3)
}
1 | sayHiFlow フローを実行します。 |
2 | ペイロード値を取得します。 |
3 | 値に対してアサーションを実行します。 |