問題
開発者が、プライベートメソッドを含む Apex クラスを作成しました。プライベートメソッドがテストクラスからアクセスできるようにするために、開発者は何をすればよいでしょうか。
- TestVisible属性をApexクラスに追加する
- SeeAllData属性をテストメソッドに追加する
- SeeAllData属性をテストクラスに追加する
- TestVisible属性をApexメソッドに追加する
正解
- TestVisible属性をApexクラスに追加する
- SeeAllData属性をテストメソッドに追加する
- SeeAllData属性をテストクラスに追加する
- TestVisible属性をApexメソッドに追加する
解説
以下は、Salesforce Apexでの@TestVisible
と@SeeAllData
アノテーションの基本的な解説です。
- @TestVisible
- 説明: このアノテーションは、通常テストからアクセスできないメンバーやメソッド(プライベートやプロテクテッドなど)をテストクラスからアクセス可能にするために使用されます。これにより、プライベートメソッドや変数の単体テストを実施することができます。
- 制約: メソッドやメンバー変数、内部クラス(他のクラスの中に定義されたクラス)に使用できますが、外部クラス(全体のクラス)、インターフェース、プロパティ、トリガーでは使用できません。
- @SeeAllData
- 説明: デフォルトでは、Apexのテストは実際の組織データにアクセスできない環境で実行されます。しかし、@SeeAllData アノテーションを使用することで、テストメソッドが実際のデータにアクセスすることができるようになります。
- 制約: 特定のテストケースで実データのアクセスが必要な場合にのみ使用すべきです。
それぞれの選択肢の理由について説明します。
□ TestVisible属性をApexクラスに追加する
これは不正解です。@TestVisible アノテーションは、特定のメソッドや変数に適用されるものであり、全体のクラスに適用するものではありません。
□ SeeAllData属性をテストメソッドに追加する
これは不正解です。@SeeAllData アノテーションは、テストメソッドが実際のデータにアクセスするかどうかを制御するためのものであり、プライベートメソッドへのアクセスとは関係ありません。
□ SeeAllData属性をテストクラスに追加する
これは不正解です。@SeeAllData アノテーションは、テストクラスが実際のデータにアクセスするかどうかを制御するためのものであり、プライベートメソッドへのアクセスとは関係ありません。
□ TestVisible属性をApexメソッドに追加する
これは正解です。@TestVisible アノテーションをプライベートメソッドに適用することで、そのメソッドはテストメソッドからアクセス可能となります。
次の問題へ
【Salesforce 認定Platformデベロッパー】試験対策:第66問
問題 カスタムボタンとカスタムリンクでサポートされるコンテンツソースは何ですか。2つ選びなさい。 VisualForceページ 静的リソース URL Chatterファイル Lightningペ…
前の問題へ
【Salesforce 認定Platformデベロッパー】試験対策:第64問
問題 標準の商談ビューボタンを上書きするには、Visulforceページのコントローラで何を使用する必要がありますか。 ページネーション用の関連リストをサポートするStand…
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 解説 デバッ…
コメント