問題
開発者は、新しいApexクラスをテストするために、特定の項目値を持つレコードを用意する必要があります。開発者は、データがテストで利用可能であることを確認するために何をすべきですか。
- 匿名Apexを使用して、必要なデータを作成する。
- SOQLを使用して、必要なデータを組織にクエリする。
- Test.loadData()を使用し、静的リソースでCSVファイルを参照する。
- Test.loadData()を使用し、ドキュメント内のJSONファイルを参照する。
正解
- 匿名Apexを使用して、必要なデータを作成する。
- SOQLを使用して、必要なデータを組織にクエリする。
- Test.loadData()を使用し、静的リソースでCSVファイルを参照する。
- Test.loadData()を使用し、ドキュメント内のJSONファイルを参照する。
解説
それぞれの選択肢の理由について説明します。
□ 匿名Apexを使用して、必要なデータを作成する
これは不正解です。匿名Apexは、本番環境やサンドボックス環境で直接スクリプトを実行するために使われます。テストクラス内でテストデータを準備する際には、テストメソッド内でデータを作成することが一般的です。匿名Apexは、テストの実行中にデータを作成するための適切な手段ではありません。
□ SOQLを使用して、必要なデータを組織にクエリする
これは不正解です。Apexテストメソッドは、デフォルトでテスト実行の際に本番環境のデータにアクセスできないため、SOQLを使用して既存のデータをクエリすることはできません。テストメソッドは隔離された環境で実行されるため、テスト用のデータはテストメソッド内で作成する必要があります。
□ Test.loadData()を使用し、静的リソースでCSVファイルを参照する
これは正解です。Test.loadData() メソッドは、静的リソースに格納されたCSVファイルからテストデータをロードするために使用されます。これにより、複雑なテストデータを簡単に準備することができ、テストの再現性と保守性が向上します。
□ Test.loadData()を使用し、ドキュメント内のJSONファイルを参照する
これは不正解です。Test.loadData() メソッドはCSVファイルのデータをロードするために使用されますが、JSONファイルを直接ロードする機能はありません。静的リソースからデータをロードする場合、データはCSV形式である必要があります。
コメント