問題
開発者が、プライベートメソッドを含む 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 アノテーションをプライベートメソッドに適用することで、そのメソッドはテストメソッドからアクセス可能となります。
次の問題へ
![](https://tysonblog-whitelabel.com/wp-content/uploads/2023/11/2021-03_Badge_SF-Certified_Platform-Developer-I_High-Res-300x294.png)
前の問題へ
![](https://tysonblog-whitelabel.com/wp-content/uploads/2023/11/2021-03_Badge_SF-Certified_Platform-Developer-I_High-Res-300x294.png)
1問目から復習する
![](https://tysonblog-whitelabel.com/wp-content/uploads/2023/11/2021-03_Badge_SF-Certified_Platform-Developer-I_High-Res-300x294.png)
コメント