34.13. 保持するメッセージの数を制限する
Mock エンドポイントは、デフォルトで受信したすべてのエクスチェンジのコピーを保持します。したがって、大量のメッセージをテストすると、メモリーを消費します。
2 つのオプション retainFirst および retainLast を導入しました。これは、最初のエクスチェンジと最後のエクスチェンジの N 分だけを保持するために使用できます。
以下のコードでは、最初の 5 のコピーと最後の 5 エクスチェンジのコピーを保持する必要があり、モックが受信されます。
MockEndpoint mock = getMockEndpoint("mock:data");
mock.setRetainFirst(5);
mock.setRetainLast(5);
mock.expectedMessageCount(2000);
mock.assertIsSatisfied();
この使用にはいくつかの制限があります。MockEndpoint の getExchanges () メソッドおよび getReceivedExchanges () メソッドは、エクスチェンジの保持コピーのみを返します。上記の例では、リストには 10 エクスチェンジ(最初の 5 つ、および最後の 5)が含まれます。retainFirst オプションおよび retainLast オプションには、使用可能な想定されるメソッドの制限もあります。たとえば、メッセージボディーやヘッダーなどで機能する 予定のXXX メソッドは、保持済みメッセージでのみ動作します。上記の例では、10 個の保持済みメッセージのみについてテストできます。