この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

再試行されたイベントメッセージのテスト

Apex トリガで EventBus.RetryableException を発生させることで、イベントメッセージの処理を再試行できます。API バージョン 43.0 以降では、Test.EventBus.deliver() をコールして EventBusSubscriber 項目を調べることで、再試行されたイベントメッセージをテストできます。

Apex テストで再試行されたイベントメッセージを強制的に再配信するには、Test.EventBus.deliver() をコールします。このメソッドでは、最後の deliver() コール以降に公開された他のイベントメッセージも配信されます。

API バージョン 43.0 以降では、次の新しい EventBusSubscriber 項目を確認して、再試行されたトリガをテストできます。

  • Retries
  • LastError

EventBusSubscriber.Retries 項目は、トリガが再試行された回数を示します。

EventBusSubscriber.LastError は、最後に実行された throw ステートメントに渡されたエラーメッセージを示します (throw new EventBus.RetryableException('Error Message'))。

EventBus.RetryableException が発生すると、トリガでイベントメッセージが正常に処理されなかったために EventBusSubscriber.Position が増分されなくなります。

メモ

このテストメソッドは、トリガを起動するテストイベントメッセージを配信します。関連付けられたイベントトリガで EventBus.RetryableException を 2 回発生させます。テストでは、EventBusSubscriber を照会して Retries 項目値を確認することで、トリガが 2 回再試行されたことを検証します。

このテストクラスを実行する前に、Order_Event__e という名前のプラットフォームイベントと、Text 型の Order_Number__c 項目および Checkbox 型の Has_Shipped__c 項目を定義します。このテストクラスは、イベントを再試行する関連付けられたトリガ (OrderTriggerRetry) があることを前提とします。このトリガはこの例では提供されていません。