問題
開発者は、さまざまな種類のSalesforceケースに対する独立した要件をテストできるように、スイート全体のベースラインデータセット(取引先、取引先責任者、製品、資産)を作成する必要があります。
各単体テストに必要なデータを効率的に生成できるアプローチはどれですか?
A.単体テストクラスの先頭に@IsTest(seeAllDatatrue)を追加します。
B.単体テストのTest.startTestの前にテストデータを作成します。
C.@TestSteupをvoidメソッドで使用します。
D.StubAPLを使用してモックを作成します。
正解
A.単体テストクラスの先頭に@IsTest(seeAllDatatrue)を追加します。
B.単体テストのTest.startTestの前にテストデータを作成します。
C.@TestSteupをvoidメソッドで使用します。
D.StubAPLを使用してモックを作成します。
解説
A. 不正解 - @IsTest (seeAllData=true)を使用すると、実際のデータにアクセスできますが、テストの独立性が失われるため、ベースラインデータセットを効率的に管理できません。
B. 不正解 - Test.startTestの前にデータを作成する方法もありますが、毎回データを作成する必要があり、効率的ではありません。
C. 正解 - @TestSetupを使用すると、複数のテストメソッドで共有できるベースラインデータを一度だけ作成できるため、効率的です。
D. 不正解 - Stub APLを使用してモックを作成する方法は、テストの独立性を確保するための一般的な方法ではありません。
ポイント
つまり、
単体テストを効率的に行うためには、@TestSetupアノテーションを使って、最初に一度だけテストに必要な基本的なデータを作成するのが最も効果的です。これにより、複数のテストメソッドで同じデータを再利用でき、テストの実行が速くなります。他の選択肢は、データ管理が非効率的になるか、テストの独立性を損なう可能性があります。