227.11. 保持するメッセージの数を制限する
Camel 2.10 以降で利用可能
Mock エンドポイントは、デフォルトで、受信したすべての Exchange のコピーを保持します。したがって、大量のメッセージでテストすると、メモリーが消費されます。
Camel 2.10 以降では、最初または最後の Exchange の N 番目のみを保持するように指定するために使用できる、retainFirst
と retainLast
の 2 つのオプションを導入しました。
たとえば、以下のコードでは、モックが受信した最初の 5 回と最後の 5 回の Exchange のコピーのみを保持したいと考えています。
MockEndpoint mock = getMockEndpoint("mock:data"); mock.setRetainFirst(5); mock.setRetainLast(5); mock.expectedMessageCount(2000); mock.assertIsSatisfied();
これを使用するには、いくつかの制限があります。MockEndpoint
の getExchanges()
および getReceivedExchanges ()
メソッドは、Exchange の保持されたコピーのみを返します。したがって、上記の例では、リストには 10 の Exchange が含まれます。最初の 5 つと最後の 5 つ。retainFirst
オプションと retainLast
オプションにも、使用できる期待値メソッドに関する制限があります。たとえば、メッセージの本文やヘッダーなどで動作する expectedXXX
メソッドは、保持されたメッセージでのみ動作します。上記の例では、保持された 10 個のメッセージに対する期待のみをテストできます。