Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerSpy プロセッサーでは、イベントプロセッサーのコール前後で何が起きているかを監視できます。
これにより、たとえば、選択した Mule イベントが、特定のペイロードまたは変数を含む特定のイベントプロセッサーに達したことを検証できます。
Spy プロセッサーを設定すると、監視されているイベントプロセッサーの実行前または後に一連の手順 (通常はアサーションまたは検証) を実行するよう MUnit に指示されます。
次の設定があるとします。
<flow name="testFlow">
<http:request path="/my/api" />
</flow>
任意の HTTP 要求を監視するように Spy プロセッサーを設定し、コンポーネントに達する前のペイロードが null であり、処理後にペイロードが null 以外になっていることを確認できます。
<munit:test name="suiteTest" >
<munit:behavior >
<munit-tools:spy processor="http:request">
<munit-tools:before-call >
<munit-tools:assert-that expression="#[payload]" is="#[MunitTools::nullValue()]"/>
</munit-tools:before-call>
<munit-tools:after-call >
<munit-tools:assert-that expression="#[payload]" is="#[MunitTools::notNullValue()]"/>
</munit-tools:after-call>
</munit-tools:spy>
</munit:behavior>
</munit:test>
また、パスが「/my/api」である任意の HTTP 要求を監視することもできます。
<munit:test name="suiteTest" >
<munit:enable-flow-sources >
<munit:enable-flow-source value="testFlow" />
</munit:enable-flow-sources>
<munit:behavior >
<munit-tools:spy processor="http:request">
<munit-tools:with-attributes >
<munit-tools:with-attribute attributeName="path" whereValue="#['/my/api']" />
</munit-tools:with-attributes>
<munit-tools:before-call >
<munit-tools:assert-that expression="#[payload]" is="#[MunitTools::nullValue()]"/>
</munit-tools:before-call>
<munit-tools:after-call >
<munit-tools:assert-that expression="#[payload]" is="#[MunitTools::notNullValue()]"/>
</munit-tools:after-call>
</munit-tools:spy>
</munit:behavior>
</munit:test>
上記のように、このプロセッサーでは、監視するプロセッサーをコールする前後でアクションを定義できます。
ただし、Spy プロセッサーで元の Mule イベントを変更することはできません。
Spy の内部で変数や属性を設定したり、ペイロードを変更したりしても、その変更はプロセッサーの外部では存続しません。
一般に Spy プロセッサーは検証または確認のために使用する必要があります。