問題
開発者は、あるクラスに対するテストを作成しており、機能を検証するためにレコードを挿入する必要があります。テストクラスのすべてのメソッドに対してレコードを作成するには、どのアノテーションを使うべきですか。
- @StartTest
- @PreTest
- @TestSetup
- @isTest(SeeAllData=true)
正解
- @StartTest
- @PreTest
- @TestSetup
- @isTest(SeeAllData=true)
解説
それぞれの選択肢の理由について説明します。
□ @StartTest
これは不正解です。Salesforceには@StartTest
というアノテーションは存在しません。
□ @PreTest
これは不正解です。Salesforceには@PreTest
というアノテーションは存在しません。
□ @TestSetup
これは正解です。@TestSetup
アノテーションは、テストクラス内のすべてのテストメソッドが実行される前に一度だけ実行されるメソッドを定義するために使用されます。このメソッド内でレコードを作成すると、それらのレコードはテストクラス内のすべてのテストメソッドで利用できます。
□ @isTest(SeeAllData=true)
これは不正解です。@isTest(SeeAllData=true)
は、テストメソッドが本番環境のデータにアクセスできるようにするアノテーションです。しかし、テストのために新たにレコードを作成する目的には適していません。通常、テストの分離と独立性を保つために、実稼働環境のデータへのアクセスは避けるべきです。
次の問題へ
【Salesforce 認定Platformデベロッパー】試験対策:第209問
問題 開発者チームは、さまざまな組織構成で独立して作業できるソース主導型のプロジェクトに取り組んでいます。開発チームは、どのタイプのSalesforce組織を使用して開…
前の問題へ
【Salesforce 認定Platformデベロッパー】試験対策:第207問
問題 Apexクラスとインターフェースに関して、次のうち正しいステートメントはどれでしょうか。2つ選択してください。 クラスは複数のレベルの内部クラスを持つことが…
1問目から復習する
【Salesforce 認定Platformデベロッパー】試験対策:第1問
問題 デバッグログに書き込まれるときのxの値は何ですか。 Integer x = 0; do { x = 1; x++; } while (x < 1); System.debug(x); 0 1 2 3 正解 0 1 2 3 解説 デバッ…
コメント