概要
Apex Test Classで作成者(CreatedBy)・最終更新者(LastModifiedBy)を設定する場合は、System.runAs()メソッドを利用します。
それにより各DMLの実行ユーザを指定することが可能となり、当該ユーザが作成者・最終更新者となります。
これによってまた、Apex Class上でユーザの各項目情報を取得することも可能になります。(※Account.Lastmodifiedby.Emailなどで)
サンプルコード
@isTest static void Test(){
User user = TestDataFactory.createUserRecord('テスト');
List<Account> testAccountList = TestDataFactory.createAccounts(10);
Test.startTest();
System.runAs(user){
insert testAccountList;
}
Test.stopTest();
}
runAsの中身は、引数に指定したユーザにより実行されます。
TestDataFactoryを使わない場合は以下のようにφ(・ω・ )かきかきします。
User u = new User(
alias = 'testuser',
email='testuser@gmail.com',
emailencodingkey='UTF-8',
lastname='Testing',
languagelocalekey='ja_JP',
localesidkey='ja_JP',
profileid = p.Id,
serroleid = r.Id,
username='testuser@gmail.com');