Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerMUnit 2.x では、追加の設定を実行せずに、Mule ドメインとリソースを共有する Mule アプリケーション用の MUnit テストスイートを作成できます。このしくみを理解するには、実際の値が入力された特定のシナリオを考慮し、そのテストの作成方法が示された手順でそれらの値を使用すると役立ちます。
domain-config
という Mule ドメインについて考えます。このドメインは、その内部のすべての Mule アプリケーションの HTTP リスナーのグローバル設定を定義します。
<domain:mule-domain ...>
<http:listener-config name="HTTP_Listener_config_domain" basePath="/" >
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
</domain:mule-domain>
<groupId>com.mycompany</groupId>
<artifactId>domain-config</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>mule-domain</packaging>
<name>domain-config</name>
ping されているパスを返す基本的な Mule アプリケーションについても考えます。
このアプリケーションは HTTP リスナーグローバル設定をその Mule ドメイン (HTTP_Listener_config_domain
) から継承するため、HTTP リスナーグローバル設定は定義しません。
<mule ...>
<flow name="application-aFlow">
<http:listener config-ref="HTTP_Listener_config_domain" path="/api"/>
<set-payload value='#["You reached " ++ message.attributes.listenerPath]'/>
</flow>
</mule>
このアプリケーションは http:listener-config
グローバル要素をその Mule ドメイン (HTTP_Listener_config_domain
) から継承するため、グローバル要素は定義しません。アプリケーションはその pom.xml
ファイル内でドメインの連動関係を宣言します。
<dependencies>
...
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>domain-config</artifactId>
<version>1.0.0</version>
<classifier>mule-domain</classifier>
<scope>provided</scope>
</dependency>
...
</dependencies>
Mule ドメインは Mule アプリケーションと連動関係にあるため、MUnit は Mule ドメインを起動して、テスト対象のアプリケーションに必要なグローバル要素設定を取得できます。
ping されているパスが実際に期待される /api
パスであることを検証する MUnit テストを考えてみます。
execution
スコープ内で、HTTP リクエスターが GET
要求をアプリケーションのエンドポイントに送信します。
validation
スコープ内で、予想される応答に対する execution
スコープからの応答をアサートする Assert Equals プロセッサーをセットアップします。
応答を予想されるテキストと比較するには、ペイロードをプレーンテキストに変換する必要があります。
<mule ...>
<munit:config name="application-a-test-suite.xml" />
<http:request-config name="HTTP_Request_configuration" basePath="/api">
<http:request-connection host="0.0.0.0" port="8081" />
</http:request-config>
<munit:test name="application-a-test-suite-application-aFlowTest" description="Test to validate the path being called">
<munit:enable-flow-sources >
<munit:enable-flow-source value="application-aFlow" />
</munit:enable-flow-sources>
<munit:execution>
<http:request config-ref="HTTP_Request_configuration" method="GET"/> (1)
</munit:execution>
<munit:validation>
<munit-tools:assert-equals (2)
actual="#[output text/plain --- payload]" (3)
expected='#["You reached /api"]'/>
</munit:validation>
</munit:test>
execution
スコープ内で、HTTP リクエスターが GET
要求をアプリケーションのエンドポイントに送信します。
validation
スコープ内で、予想される応答に対する execution
スコープからの応答をアサートする assert-equals
プロセッサーをセットアップすることにします。
応答を予想されるテキストと比較するには、ペイロードをプレーンテキストに変換する必要があります。