MUnitを使ってみよう

ここまでMuleの様々な機能を色々使ってフローを組んできました。今回からはそのフローをテストするためのMUnitについて何回かに分けて解説したいと思います。

スポンサーリンク

MUnitとは

Muleフローの単体テストにはMUnitというテストフレームワークを使用します。名前の通りMuleのUnit Testであり、Eclipse上で動作するテストアプリケーションになります。JavaのテストフレームワークがJUnitであるように、Muleに特化したテストフレームワークになります。

テストケースを作成してみよう

では早速MUnitを使用したテストを作成してみます。

今回は以下の簡単なフローをMUnitでテストしてみることにします。

まずはテストクラスを作成してみます。MuleのテストクラスのことをMUnit テストスイートと言うらしいです。MUnit テストスイートはプロジェクトのsrc/test/munitの中に作成されます。
[File]→[New]→[MUnit Test]から作成します。

MUnit Testの作成

MUnit テストスイート名称の入力とテスト対象のフロー選択画面が表示されるので、テスト対象のフローを選択して名前を入力します。テストスイート名称については、命名規約にもよりますが、テスト対象フローのファイル名+「Test」という名前にするといいでしょう。

MUnit Testの作成

作成すると、以下のような形でテストフローが自動的に作成されます。また、Mule PaletteにはMUnitとMUnit Toolsというテストフローでのみ使えるモジュールが使用できるようになります。

MUnit Testの構成

テストフローは以下の3スコープで構成されています。

  • Execution … フローを実行する領域
  • Behavior … モックなどでテスト実行の際に事前設定する領域
  • Validation … 実行したフローに対し、結果を検証するための領域

今回はごくシンプルなフローのため、Behaviorは使用しません。Behaviorの設定は次回以降に説明しようと思います。

Executionにはテスト対象となるフローを呼び出すためのFlow Referenceを配置します。また、今回は入力が伴うフローではありませんが、payloadやパラメータの設定などもこの領域で行います。

Validationにはフロー実行後の結果を検証するためのチェックをする箇所となります。今回のフローでは、payloadの値に「Hello Mule」という文字列を設定しているため、payloadの値を検証します。値の検証はMUnit ToolsのAsert Equalsコンポーネントを使用します。Validation領域にドラッグアンドドロップして、Actialにはpayloadを、Expectedには期待値(ここでは「Hello Mule」)を入れましょう。値が一致すればOK、値が異なっていればそのテストケースはNGということになります。

Assert equalsの設定

フロー名やコンポーネント名などを調整して、以下のようなテストフローが出来上がりました。これで簡単ではありますが、テストケースが完成です。

テストフロー完成版

テスト実行

では、作成したテストケースを実行してみましょう。右クリックから[Run MUnit suite]で実行ができます。デバッグ実行したい場合は、[Debug MUnit suite]でもOKです。

MUnitテスト実行

テストを実行すると、テスト結果がMUnitというタブに表示されます。緑色のバーが出ていれば成功です。

MUnitテスト実行結果

テスト実行後、テスト対象となったフローを見てみると、それぞれのコンポーネントに緑色のチェックが表示されます。このチェックはテストの時に通過したコンポーネントを意味しており、エラーなく最後まで通過していることが視覚的に分かります。

MUnitテスト実行後の対象フロー

次回は分岐パターンをやってみる

簡単ではありますが、MUnitでテストケースを作成して実際に実行させることができました。今回はシンプルな1本線のフローでしたが、次回はより複雑なケースのテストパターンを実施していきたいと思います。

MuleSoft
スポンサーリンク

コメント