Loading

B2B Commerce For Visualforce - カスタムテストクラスのエラー「Too many SOQL queries: 101」 (SOQL クエリが多すぎます: 101) を解決する

公開日: Aug 26, 2024
説明

単体テストによって ccsl.cc_CallContext.getConfigValue へのコールが多数行われると、モック構成設定データがテストメソッドに挿入されていない場合、Apex 例外「Too many SOQL queries: 101」 (SOQL クエリが多すぎます: 101) で失敗します。

ccApiTestData.setupData がコールされると、データは 1 回のトランザクションでのみ有効になります。@TestSetup メソッド中に setupData メソッドがコールされた場合、構成を取得するために用意されているメモリ内ガードがリセットされ、cclder.ccall.cc_CallContext.getConfigValue へのすべてのコールの IsTest がアノテーションされたメソッドで冗長 SOQL が実行されます。

解決策

1.個々の @isTest がアノテーションされたメソッドで ccdw.ccApiTestData.setupData がコールされることを確認します。

2.バージョンが 4.13 (4.139) 以降の場合、ccdw.CCApiTestData.CONFIG_SETTINGS にデータを入力します。特定のデータが不要な場合でも、ccApiTestData.setupData への呼び出しの一部としてモック構成設定を含める必要があります。
Map<String, Object> configSettingMock = new Map<String, Object> {                'safe' => 'default'            };ccrz.ccApiTestData.setupData(new Map<String,Map<String,Object>> {    ccrz.CCApiTestData.CONFIG_SETTINGS => configSettingMock};

 

ナレッジ記事番号

000395910

 
読み込み中
Salesforce Help | Article