お世話になっております。
現在、土日祝等を除く特定の営業日で自動起動フローを呼び出す
Apexクラスを作成しています。
上記Apexクラス内では、土日祝等を判断するためにカスタムメタデータを使用している事もあり
テストクラス内では、insert等でテストデータを作成できないため
具体的な日付を指定しているのですが
コードカバー率が0%のまま、リリース要件を満たせていない状態です。
上記テストクラスでコードカバー率 75%以上を満たすようにするために
どのようなテストを行えば良いかご存知の方がいらっしゃいましたら
ご教示いただきたく存じます。
拙い説明で申し訳ありません。
よろしくお願いいたします。
2 answers
あくまで例としてです。
Apexクラスの責務を「自動起動フローを呼び出す」と「何かしらのデータを受け取り処理する」という観点で分離します。
Apexクラス : 何かしらのデータを受け取り処理する
↓ 呼び出す
Apexクラス : 自動起動フローを呼び出す
↓ 呼び出す
自動起動フロー
上記の分離で各自Apexクラスを分離すると、"Apexクラス : 何かしらのデータを受け取り処理する"をテスト時に"Apexクラス : 自動起動フローを呼び出す"をモックにする構成が取れるかと思います。
この構成であれば、下記のようなテスト方針で75%は取れるかと思います。
- 「Apexクラス : 何かしらのデータを受け取り処理する」のテスト → 「このようなデータが取れるはず」という仮定でテストを実施できる
- 「Apexクラス : 自動起動フローを呼び出す」のテスト → 自動起動フローを呼び出せていることを確認できればOK(具体的なデータはAssetしない)