Apex runAsメソッドの使い方のサンプル
環境
Salesforce
構文
System.runAs(u){
// 処理コードを記載
}
runAsメソッドを使用すると、ユーザ権限と項目レベルの権限は強制実行されなく、レコード共有のみを適用します。
通常、Apexコードはすべてシステムモードで実行されますが、runAsメソッドを使用するとユーザを指定して
Apexを実行することができます。
操作例
@isTest private class TestRunAs { public static testMethod void testRunAs() { // テストデータの作成 // ユニックユーザー名の作成 String uniqueUserName = 'standarduser' + DateTime.now().getTime() + '@sample.com'; // システムユーザとして実行 プロファイルを検索する Profile p = [SELECT Id FROM Profile WHERE Name='Standard User']; //新規ユーザに割り当て User u = new User(Alias = 'standt', Email='standarduser@sample.com', EmailEncodingKey='UTF-8', LastName='Testing', LanguageLocaleKey='en_US', LocaleSidKey='en_US', ProfileId = p.Id, TimeZoneSidKey='America/Los_Angeles', UserName=uniqueUserName); System.runAs(u) { // 作成したユーザで処理コードの実行 System.debug('現在のユーザ: ' + UserInfo.getUserName()); System.debug('現在のプロファイル: ' + UserInfo.getProfileId()); } } }