Assert Expression

Assert Expression プロセッサーでは、Mule イベントのコンテンツの状態をアサートする Dataweave 式を評価できます。このプロセッサーは、​『DataWeave アサーションライブラリ』​を使用して、本番コードの実行後に Mule イベントを検証するために使用できます。

たとえば、ペイロードが特定の値と等しいことをアサートするため、equalTo() マッチャーを使用して Assert-Expression プロセッサーを設定できます。

<munit-tools:assert>
    <munit-tools:that>#[ import * from dw::test::Asserts ---
        payload must equalTo('example') ]
    </munit-tools:that>
</munit-tools:assert>
xml

複雑なアサーションの実行

DW アサーションライブラリを使用すると、Mule イベントのコンテンツの状態をより深くアサートできます。

<munit-tools:assert>
    <munit-tools:that>#[ import * from dw::test::Asserts ---
        vars.attributes must [beObject(), $.statusCode must equalTo(200), $.method must equalTo('GET')] ]
    </munit-tools:that>
</munit-tools:assert>
xml

独自のマッチャーの作成

独自のマッチャーを作成するには、​src/test/resources​ フォルダーに DW ファイルを追加します。たとえば、次のコンテンツを含む ​MyMatcher.dwl​ というファイルを追加します。

import * from dw::test::Asserts

fun beEven(): Matcher<Number> =
     (actual:Number) -> do {
         var matchesEven = (actual mod 2) == 0
         ---
         {
             matches: matchesEven,
             description: {expected: " to be an even number.", actual: write(actual) as String}
         }
     }
dataweave

次に、Assert-Expression プロセッサー内でそれを使用します。

<munit-tools:assert>
    <munit-tools:that>#[ import * from dw::test::Asserts ---
        payload must MyMatcher::beEven() ]
    </munit-tools:that>
</munit-tools:assert>
xml

このアサーションが失敗すると、プロセッサーは ​java.lang.AssertionError​ をスローします。

dw::test::Asserts​ ライブラリのマッチャーは、​MunitTools​ マッチャーとは互換性がありません。Assert-That プロセッサーで ​dw::test::Asserts​ は使用できず、Assert-Expression プロセッサーで ​MunitTools​ マッチャーは使用できません。