Apex runAsメソッド テストで使用するメソッドのサンプル

環境
Salesforce

構文
System.runAs(u){
// 処理コード
}
通常、Apexコードはすべてシステムモードで実行されますが、
runAsメソッドを使用するとユーザを指定してApexを実行することができます。

使用例
作成するユーザのプロファイルを検索(Select)して、それを新規ユーザに割り当てています。

//ユーザを作成する
Profile pf = [Select id,name From Profile where name = '標準ユーザ' LIMIT 1];

User user = new User(
     alias = 'test8',
       username ='test8@arkgame.com.test',
       email = 'test8@arkgame.com',
       ProfileId = pf.id,
       emailencodingkey='UTF-8',
       lastname='test8',
       languagelocalkey='en_US',
       localeidkey='en_US',
       timezonesidkey = 'America/Los_Angeles'
);
insert user;

System.Test.startTest();
//作成したユーザで処理の実行
 System.runAs(user){
    //処理コード
 }
System.Test.stopTest();

 

IT

Posted by arkgame