テストのユーティリティクラスの使用

テストケースを開発するときに、​src/test/java​ にあるカスタム Java クラスを使用することもできます。Java クラスは、DataWeave や Java Module を介して使用できます。

カスタムクラスを使用している場合、クラスのパッケージを ​mule-artifact.json​ ファイルにエクスポートする必要があります。

{
  "minMuleVersion": "4.x.x",
  "classLoaderModelLoaderDescriptor": {
    "id": "mule",
    "attributes": {
      "exportedPackages": [
        "com.example.test"
      ]
    }
  }
}

たとえば、MUnit テストで ​src/test/java/com/example/​ にある ​MyUtilClass.java​ クラスを使用するとします。

MyUtilClass
package com.example.test;

public class Helper {

  public static long getCurrentMillis() {
    return System.currentTimeMillis();
  }

}

DataWeave を使用して Java クラスを呼び出す

DataWeave を使用して静的メソッドを呼び出すには、​java!​ プレフィックスをクラスのパッケージ名に追加します。

DataWeave でのクラスの使用
<munit:test name="usingJavaInDW">
    <munit:behavior>
        <set-variable variableName="number" value="#[java!com::example::test::Helper::currentMillis()]" />
    </munit:behavior>
    <munit:execution>
        <flow-ref name="myFlow"/>
    </munit:execution>
</munit:test>

Java Module を使用して Java クラスを呼び出す

Java Module を使用してカスタム Java クラスを呼び出す手順は、次のとおりです。

  1. Java Module がプロジェクトにあることを確認します。

    Java Module の連動関係
    <dependency>
        <groupId>org.mule.module</groupId>
        <artifactId>mule-java-module</artifactId>
        <version>${javaModule.version}</version>
        <classifier>mule-plugin</classifier>
        <scope>test</scope>
    </dependency>
  2. Java Module のいずれかの操作を使用します。
    この例では、クラスの静的メソッドを呼び出します。

    Java Module でのクラスの使用
    <munit:test name="usingJavaInDW">
        <munit:behavior>
            <set-variable variableName="number" value="#[java!com::example::test::Helper::currentMillis()]" />
        </munit:behavior>
        <munit:execution>
            <flow-ref name="myFlow"/>
        </munit:execution>
    </munit:test>