設問
Universal Containers には、オブジェクト、フィールド、行ベースのセキュリティメカニズムを通じて適用される厳格なセキュリティモデルがあります。アーキテクトは、Apex 自動テストを使用してセキュリティモデルが徹底的にテストされていることを確認したいと考えています。runAs() メソッドを使用してテストまで Apex を設計する場合、考慮すべき 3 つの点はどれですか?
選択肢
A. runAs() は、テストクラスでのユーザー権限やフィールドレベルの権限を強制しません。
B. runAs() をテストクラス内で使用して、レコードレベルのセキュリティを検証できます。
C. runAs() をテストクラス内で使用して、フィールドレベルの権限を検証できます。
D. runAs() をテストクラスの外部で使用して、レコードレベルのセキュリティをバイパスできます。
E. runAs() は、トランザクション内で発行された DMLステートメントの合計にカウントされます。
解答
A. runAs() は、テスト クラスでのユーザー権限やフィールド レベルの権限を強制しません。
B. runAs() をテスト クラス内で使用して、レコード レベルのセキュリティを検証できます。
E. runAs() は、トランザクション内で発行された DML ステートメントの合計にカウントされます。
解説
A. runAs() は、テストクラスでのユーザー権限やフィールドレベルの権限を強制しません。
正解です。runAs() は、指定されたユーザーのレコードレベルのセキュリティや共有ルールを適用しますが、プロファイルに基づくオブジェクトやフィールドレベルの権限は強制されません。
B. runAs() をテストクラス内で使用して、レコードレベルのセキュリティを検証できます。
正解です。runAs() を使用することで、特定のユーザーのコンテキスト内でレコードの共有設定が適用されるかをテストし、レコードレベルのセキュリティが正しく機能しているか確認できます。
C. runAs() をテストクラス内で使用して、フィールドレベルの権限を検証できます。
不正解です。runAs() はフィールドレベルのセキュリティをテストする目的では使用できません。フィールドレベルの権限はテスト実行時に強制されないため、検証できません。
D. runAs() をテストクラスの外部で使用して、レコードレベルのセキュリティをバイパスできます。
不正解です。runAs() はテストクラス内でのみ使用可能なメソッドであり、実運用コードでは使用できません。また、runAs() はセキュリティをバイパスするためのものではありません。
E. runAs() は、トランザクション内で発行された DMLステートメントの合計にカウントされます。
正解です。runAs() 内で行われた DML 操作は、そのトランザクションのガバナ制限に含まれるため、DMLステートメントのカウントに影響します。
第52問
こちらをクリック