SFDCでは、テストクラスの実行によって
ガバナー制限に引っかかる時あるでしょう
今回、【System.LimitException: Too many SOQL queries: 101】について
その解消秘密を公開します。
欲しけりゃくれてやる・・・。
探せ!
この世の全てをそこに置いてきた〜笑
目次
制限
サンプルコード
@IsTest
private class MyTestClass {
private static testMethod void myTest() {
// データの準備
List exsists = [Select Id From CustomObject__c Where Name='hoge'];
if (!exsists.isEmpty()) {
delete exsists;
}
kasutamuSobject__c c = new kasutamuSobject__c(Name='hoge');
insert c; // テスト用データの作成
Test.startTest();
Account a = new Account(Name='hoge');
insert a; // テストとは直接関係ないが、ガバナ制限をリセットさせるためのDML呼び出し
///////////////////////////
/////テストしたいこと//////
///////////////////////////
Test.stopTest();
System.assertEquals('sample', result);
}
}
作成するデータ数
もうひとつ、作成するレコード数を減らすも効果ある IT転職ならビーサイド!
なぜなら、主従関係のせいで複数作成する場合に、積み上げ集計項目が原因でトリガが動作しちゃう
解説
注意点: Test.startTest()が呼ばれてから最初のDMLまたはWeb Serviceメソッド呼び出してガバナ制限がリセットされる
参考サイト
Apexテストコード作成の落とし穴 | Salesforce Developers Japan Blog Archives https://help.salesforce.com/articleView?id=000181404&language=ja&type=1