Salesforce runAsメソッドを使用するサンプル
環境
Salesforce Apex
構文
System.runAs(u){
// 処理コード
}
一般に、Apex コードはすべてシステムモードで実行され、現在のユーザーの権限やレコード
共有は考慮されません。ユーザーのレコード共有を強制実行するために、
システムメソッド runAs を使用して、コンテキストユーザーを既存のユーザーまたは
新規ユーザーに変更するテストメソッドを作成できます。runAs メソッドは、
レコード共有を適用します。
新規のコンテキストユーザーには、ユーザー権限と項目レベル権限が適用されます。
使用例
// ユーザを作成する Profile p = [Select id,name From Profile Where name = '標準ユーザ' LIMIT 1]; User user = new User( alias = 'changfa', username='changfa@arkgame.com.test', email='changfa@arkgame.com', ProfileId = p.id, emailencodingkey='UTF-8', lastname='changfa', languagelocalekey='en_US', localesidkey='en_US', timezonesidkey='America/Los_Angeles' ); Insert user; Test.startTest(); // 作成したユーザで処理の実行 System.runAs(user){ // 処理コード } Test.stopTest();