前回は分岐のあるフローでもカバレージを満たすテストケースを作成してきました。今回はモックを使用したテストケースを実施していきたいと思います。
今回使用するコンポーネント
コンポーネント | アイコン・領域 | 用途 |
---|---|---|
Mock when | 指定されたコンポーネント処理を擬似的に実施する |
今回使用するフロー
今回は以下のフローに対してテストケースを作成していきます。
こちらのフローでは、Salesforceの接続を伴うフローです。実際にMUnitでテストケースを作成するときは、単体テスト工程で実施をするため、Salesforceの接続環境がまだできていないこともあります。
このような場合、MUnitでは外部システムなどへアクセスする代わりに擬似のテスト結果を返すモックを使用してテストを実施することがあります。では、実際にモックを使用してテストケースを作成してみましょう。
モックを使用したテストケース
では実際にテストケースを作成してみます。
今回はSalesforceのQueryの代わりの処理をモックが担うため、Queryの代わりに実行するモックを配置します。Mock whenをBehaviorに配置します。
モックの処理対象となるコンポーネントを選択します。Mock whenプロパティの[Pick processor]から、モックの処理対象となるコンポーネント(今回はSalesforceのQuery)を選択して、doc:nameとdoc:idにチェックを付けます。doc:nameは表示名程度の影響しかありませんが、ここで重要なのがdoc:idを一致させることです。doc:idで指定したコンポーネントの代わりにこのモックが動作する設定となります。
このようにAttribute nameにdoc:idが設定されていればOKです。
Then returnには擬似的な実行結果を設定します。今回はSalesfroceのAccountに対してクエリーをかけることになるため、Accountのクエリー結果を返す結果を設定します。Payloadタブからクエリー結果を記載します。
これにてモックの設定は終了です。あとは、Validationに適切な検証を入れましょう。今回はQueryで返ってきたPayloadがJSON化されて返ってくるので、クエリー結果を入れればOKです。
これでテストケースが完成したので実際にテスト実行してみましょう。テストの正常終了とレコード有分岐のカバレージが通っていれば成功です。ちゃんとQueryも通っていることが分かります。
このフローはクエリー結果によっては分岐先が変わるため、別のテストケースではクエリー結果が空ののモックを作っておく必要があります。別のテストケースでは、検索結果0件の結果を返すモックとその検証結果を作成しておきましょう。
2つテストケースを作成したら、テスト実行します。分岐で両方通っているのが確認できればOKです。
次回は例外パターンのテストを
これによりモックを使用して、単体テストでは疎通できない部分もカバレージを満たすことができました。あとは、上記のテスト結果で足りない部分の例外パターンのテストについて次回テストケースを作成していきたいと思います。
コメント