何でだろうなぁ。今まで機能していたのに急に動かなくなった感じです。
static testMethod void Modal_mainTest() {
User u = fkd_User.createTestUser();
sobject[] recordTypeList = [select Id, Name from RecordType WHERE Name = '得意先' ];
Account myAcc = new Account(Name = 'xxxxxx',
customer_code__c='14xyz',
RecordTypeId = recordTypeList[0].Id
);
insert myAcc;
Test.startTest();
// 作成したユーザで処理を実行
System.runAs(u){
UpdateData.update_Account();
}
Test.stopTest();
}
System.runAs(u){の位置を変えるとエラーが消えた
static testMethod void Modal_mainTest() {
User u = fkd_User.createTestUser();
// 作成したユーザで処理を実行
System.runAs(u){
sobject[] recordTypeList = [select Id, Name from RecordType WHERE Name = '得意先' ];
Account myAcc = new Account(Name = 'xxxxxx',
customer_code__c='14xyz',
RecordTypeId = recordTypeList[0].Id
);
insert myAcc;
Test.startTest();
UpdateData.update_Account();
Test.stopTest();
}
}
しかし、本番環境にはこの書き方のテストクラスがいっぱいあるけど、デプロイしてもエラーにならなかったです。
もしかしてsandboxだけの問題かな?
単にこの書き方が悪るいのかもしれない。
ユーザを作るプロセスと他のレコード作成プロセスをTest.startTest()あるいはSystem.runAs(u){で分けたら問題ない。