MUnit マッチャー

MUnit マッチャーは、式の任意の値のアサーション条件を定義する一連の DataWeave 機能です。

マッチャーを定義する場合、次の例のようにプレフィックス ​MunitTools::​ を式に含める必要があります。

マッチャーは、検証する条件の種別に応じてグループ化されます。

コア値の照合

コアマッチャーは、式のコア値を評価します。

  • 式が null か?

  • 式のメディア種別またはエンコードは?

  • 式で false が返されるか?

  • 2 つの評価が成功しているか?

コアマッチャー:

  • nullValue()​ は、式が null かどうかをチェックします。

    例:

    #[MunitTools::nullValue()]
  • notNullValue()​ は、式が null でないかどうかをチェックします。

    例:

    #[MunitTools::notNullValue()]
  • withMediaType(String)​ は、式のメディア種別が指定された種別かどうかをチェックします。

    例:

    #[MunitTools::withMediaType('text/xml')]
  • withEncoding(String)​ は、式のエンコードが指定されたエンコードかどうかをチェックします。

    例:

    #[MunitTools::withEncoding('UTF-8')]
  • both(Matcher, Matcher)​ は、指定されたマッチャーが両方とも成功しているかどうかをチェックします。

    例:

    #[MunitTools::both(MunitTools::notNullValue(), MunitTools::equalTo('example'))]
  • either(Matcher,Matcher)​ は、1 つ以上のマッチャーが成功しているかどうかをチェックします。

    例:

    #[MunitTools::either(MunitTools::nullValue(), MunitTools::equalTo(0))]
  • not(Matcher)​ は、指定されたマッチャーが成功していないかどうかをチェックします。

    例:

    #[MunitTools::not(MunitTools::equalTo(0))]
  • anyOf(Matchers[]​) は、いずれかのマッチャーが成功しているかどうかをチェックします。

    例:

    #[MunitTools::anyOf([MunitTools::notNullValue(),MunitTools::withMediaType('text/xml'),MunitTools::isEmptyString()])]
  • allOf(Matchers[]​) は、すべてのマッチャーが成功しているかどうかをチェックします。

    例:

    #[MunitTools::allOf([MunitTools::notNullValue(),MunitTools::withMediaType('text/xml'),MunitTools::isEmptyString()])]

文字列の照合

文字列マッチャーは、文字列式のアサーションを実行します。

  • 式に指定された文字列が含まれているか?

  • 式が指定された文字列で開始または終了しているか?

  • 式の文字列の長さが 0 になっているか?

  • 式の文字列が指定された文字列と一致しているか?

文字列マッチャー:

  • containsString(String)​ は、式に指定された文字列が含まれているかどうかをチェックします。

    例:

    #[MunitTools::containsString('example')]
  • startsWith(String)​ は、式が指定された文字列で開始しているかどうかをチェックします。

    例:

    #[MunitTools::startsWith('exam')]
  • endsWith(String)​ は、式が指定された文字列で終了しているかどうかをチェックします。

    例:

    #[MunitTools::endsWith('ple')]
  • isEmptyString()​ は、式の長さが 0 かどうかをチェックします。

    例:

    #[MunitTools::isEmptyString()]
  • isEmptyOrNullString()​ は、式が null または式の長さが 0 かどうかをチェックします。

    例:

    #[MunitTools::isEmptyOrNullString()]
  • equalToIgnoringCase(String)​ は、式が指定された文字列と一致しているかどうかをチェックします (大文字と小文字の違いは無視される)。

    例:

    #[MunitTools::equalToIgnoringCase('example')]
  • equalToIgnoringWhiteSpace(String)​ は、式が文字列一致しているかどうかをチェックします (先頭と末尾の空白は無視され、すべての内部空白は 1 つの空白に圧縮される)。

    例:

    #[MunitTools::equalToIgnoringWhiteSpace('An Example')]
  • stringContainsInOrder(String, String,…​)​ は、表示順序に関係なく、式に指定されたすべてのサブ文字列が含まれているかどうかをチェックします。

    例:

    #[MunitTools::stringContainsInOrder('an', 'example')]

比較可能な式の照合

比較可能なマッチャーは、指定された値に対して式を比較します。

  • 式の値が指定された値よりも大きいまたは小さいか?

  • 式の値が特定の数値に近いか?

一部の比較可能なマッチャーは、​Comparable​ 型を取ります。 Comparable​ は、相互に比較できるすべての型を表す DataWeave 型です。 許可されているプリミティブは、​String​、​Number​、​Boolean​、​DateTime​、​LocalDateTime​、​LocalTime​、​Time​、​TimeZone​ です。

比較可能なマッチャー:

  • greaterThan(Comparable)​ は、式が指定された値よりも大きいかどうかをチェックします。

    例:

    #[MunitTools::greaterThan(20)]
    #[MunitTools::greaterThan(|2017-08-09|)]
  • greaterThanOrEqualTo(Comparable)​ は、式が指定された値以上かどうかをチェックします。

    例:

    #[MunitTools::greaterThanOrEqualTo(20)]
    #[MunitTools::greaterThanOrEqualTo(|2017-08-09|)]
  • lessThan(Comparable)​ は、式が指定された値よりも小さいかどうかをチェックします。

    例:

    #[MunitTools::lessThan(20)
    #[MunitTools::lessThan(|2017-08-09|)]
  • lessThanOrEqualTo(Comparable)​ は、式が指定された値以下かどうかをチェックします。

    例:

    #[MunitTools::lessThanOrEqualTo(20)]
    #[MunitTools::lessThanOrEqualTo(|2017-08-09|)]
  • closeTo(Number, Number)​ は、式が最初の数値と 2 番目の数値で定義された範囲に収まるかどうかをチェックします。

    例:

    #[MunitTools::closeTo(1, 0.01)]
  • equalTo(Object)​ は、式が指定された値と等しいかどうかをチェックします。このマッチャーは Dataweave オブジェクトも受け入れます。

    例:

    #[MunitTools::equalTo('example')]
    #[MunitTools::equalTo({example1: 1 , example2: 2}]

マップとイテレーションの照合

式がデータの配列やマップの場合、イテラブルマッチャーやマップマッチャーを使用します。

  • 式のマップまたは配列が空か?

  • 式のマップまたは配列に特定のキーが含まれているか?

  • 式の配列のすべての項目が特定の数値よりも大きいまたは小さいか?

  • 式の配列のいずれかの項目が指定された文字列で開始または終了しているか?

イテラブルなマッチャーとマップマッチャー:

  • everyItem(Matcher)​ は、式のすべての要素が指定されたマッチャーと一致しているかどうかをチェックします。このマッチャーは、配列でのみ機能します。

    例:

    #[MunitTools::everyItem(MunitTools::notNullValue())]
    #[MunitTools::everyItem(MunitTools::startsWith('a'))]
  • hasItem(Matcher)​ は、式のいずれかの要素が指定されたマッチャーと一致しているかどうかをチェックします。このマッチャーは、配列でのみ機能します。

    例:

    #[MunitTools::hasItem(MunitTools::notNullValue())]
    #[MunitTools::hasItem(MunitTools::startsWith('a'))]
  • hasSize(Matcher)​ は、式のサイズが指定されたマッチャーと一致しているかどうかをチェックします。

    例:

    #[MunitTools::hasSize(MunitTools::equalTo(5))]
    #[MunitTools::hasSize(MunitTools::greaterThan(5))]
  • isEmpty()​ は、式が空のコレクションかどうかをチェックします。

    例:

    #[MunitTools::isEmpty()]
  • hasKey(Matcher)​ は、指定されたマッチャーと一致するキーが式に含まれているかどうかをチェックします。このマッチャーは、マップでのみ機能します。

    例:

    #[MunitTools::hasKey(MunitTools::equalTo('myKey'))]
    #[MunitTools::hasKey(MunitTools::startsWith('a'))]
  • hasValue(Matcher)​ は、指定されたマッチャーと一致する値が式に含まれているかどうかをチェックします。このマッチャーは、マップでのみ機能します。

    例:

    #[MunitTools::hasValue(MunitTools::equalTo('myValue'))]
    #[MunitTools::hasValue(MunitTools::startsWith('a'))]