テストケースを開発するときに、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 クラスを呼び出す手順は、次のとおりです。
-
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> -
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>