問題
開発者は、ヘルパークラスを持つ新しいApexトリガーを作成し、新しいApexヘルパークラスの95%のカバレッジのみを実行するテストクラスを作成します。本番環境への変更セットのデプロイは、以下テストカバレッジの警告で失敗します。
“選択したApexトリガーのテストカバレッジは0%です。少なくとも1%のテストカバレッジが必要です。”
新しいApexトリガーとヘルパークラスのデプロイを成功させるために、開発者は何をする必要がありますか。
- ヘルパークラスのテストクラスカバレッジを増やす。
- 失敗したテストメソッドをテストクラスから削除する。
- 開発者コンソールで「Run All」を使用してテストを実行する。
- Apexトリガーをカバーするテストクラスとメソッドを作成する。
正解
- ヘルパークラスのテストクラスカバレッジを増やす。
- 失敗したテストメソッドをテストクラスから削除する。
- 開発者コンソールで「Run All」を使用してテストを実行する。
- Apexトリガーをカバーするテストクラスとメソッドを作成する。
解説
Salesforceの本番環境へのデプロイにおいては、トリガーやクラスのデプロイには、それらが実行されるテストクラスによる適切なカバレッジが必要です。開発者が直面している問題の原因は、Apexトリガー自体がテストクラスによって実行されていないことです。
それぞれの選択肢の理由について説明します。
□ ヘルパークラスのテストクラスカバレッジを増やす。
これは不正解です。ヘルパークラスのカバレッジを増やすことは一般に良い習慣ですが、問題の原因はトリガーのカバレッジが0%であることなので、これが直接の解決策にはなりません。
□ 失敗したテストメソッドをテストクラスから削除する。
これは不正解です。テストメソッドが失敗しているという情報はありませんし、失敗しているテストメソッドを削除することは、テストカバレッジを改善する適切なアプローチではありません。問題はカバレッジの不足です。
□ 開発者コンソールで「Run All」を使用してテストを実行する。
これは不正解です。このオプションは組織内の全てのテストを実行しますが、特定のトリガーのテストカバレッジを増やすためには、そのトリガーに対して特定のテストケースを実行する必要があります。
□ Apexトリガーをカバーするテストクラスとメソッドを作成する。
これは正解です。Salesforceでは本番環境へのデプロイ前に、運用環境全体での全テストの合計カバレッジが75%以上であること、および各Apexトリガーのテストカバレッジが最低1%以上であることが必要です。そのため、トリガーがテストクラスによって全くカバーされていない場合、トリガーを適切にテストするテストクラスとメソッドを作成することが解決策になります。
コメント