問題
開発者は、新しいApexクラスをテストするには、特定の項目値を持つレコードが必要です。
データをテストに利用できるようにするには、開発者は何をすべきでしょうか?
A.Test.loadData()を使用し、静的リソース内のCSVファイルを参照します。
B.匿名Apexを使用して必要なデータを作成します。
C.SOQLを使用して組織に必要なデータをクエリします。
D.Test.loadData()を使用し、Documents内のJSONファイルを参照します。
正解
A.Test.loadData()を使用し、静的リソース内のCSVファイルを参照します。
B.匿名Apexを使用して必要なデータを作成します。
C.SOQLを使用して組織に必要なデータをクエリします。
D.Test.loadData()を使用し、Documents内のJSONファイルを参照します。
解説
A. 不正解 - Test.loadData()は、テストデータを静的リソースから読み込むためのもので、事前にCSVファイルが用意されている必要があります。
B. 正解 - 匿名Apexを使うことで、必要なデータを即座に作成できるため、特定の項目値を持つレコードを柔軟に生成できます。
C. 不正解 - SOQLを使用して組織のデータをクエリすることはできますが、テスト環境では既存のデータを使用するのは望ましくありません。
D. 不正解 - Test.loadData()はJSONファイルには対応しておらず、Documents内のJSONファイルを利用することはできません。
ポイント
開発者がApexクラスをテストする際、最も良い方法は匿名Apexを使用して必要なレコードを作成することです。これにより、テストデータを簡単に準備できます。他の方法はテストデータ作成には適していません。