Newer Version Available
Limits、startTest、および stopTest の使用
Limits メソッドは、メソッドのコール数やヒープサイズの残りの量など、特定のガバナの具体的な制限を返します。
各メソッドには 2 つのバージョンがあります。1 つ目のバージョンは、現在のコンテキストで使用されているリソースの量を返します。2 つ目のバージョンは limit という語を使用し、そのコンテキストに使用できるリソースの合計量を返します。たとえば、getCallouts は現在のコンテキストで処理済みの外部サービスへのコールアウト数を返し、getLimitCallouts は指定されたコンテキストで使用できるコールアウトの合計数を返します。
Limits メソッドのほかに、startTest メソッドと stopTest メソッドを使用して、コードがガバナ制限にどれくらい近づいているかを確認します。
startTest メソッドは、テストコード内のテストが実際に開始するポイントをマークします。各テストメソッドは、このメソッドを 1 回のみコールできます。このメソッドの前のすべてのコードを、変数の初期化、データ構造の入力などのために使用する必要があります。これにより、テストを実行するために必要なすべてを設定できます。startTest へのコールの後および stopTest の前に実行するコードはすべて、新しいガバナ制限セットが割り当てられます。
startTest メソッドはテストのコンテキストを更新せず、コンテキストをテストに追加します。たとえば、クラスが startTest をコールする前に 98 件の SOQL クエリを作成し、startTest 後の最初の有意なステートメントが DML ステートメントである場合、プログラムはさらに 100 件のクエリを作成できます。ただし、stopTest がコールされると、プログラムは元のコンテキストに戻り、100 件の制限に達するまで追加できる SOQL クエリは 2 件だけになります。
stopTest メソッドは、テストコード内のテストが終了するポイントをマークします。このメソッドは startTest メソッドと組み合わせて使用します。各テストメソッドは、このメソッドを 1 回のみコールできます。stopTest メソッドの後に実行するコードはすべて、startTest がコールされる前に有効だった元の制限が割り当てられます。startTest メソッドの後に実行されたすべての非同期コールはシステムによって収集されます。stopTest を実行する場合、すべての非同期プロ��スが同期して実行されます。