226.11. 限制要保留的消息数量

可从 Camel 2.10 开始

Mock 端点默认保留它收到的每个交换的副本。因此,如果您使用大量消息进行测试,那么它将消耗内存。
从 Camel 2.10 开始,我们引入了两个选项 保留了First 保留,它可用于仅保留第 N 个和/或最后一个 Exchange。

例如,在下面的代码中,我们只想保留模拟接收的前 5 个和最后一个 5 Exchange 的副本。

  MockEndpoint mock = getMockEndpoint("mock:data");
  mock.setRetainFirst(5);
  mock.setRetainLast(5);
  mock.expectedMessageCount(2000);

  mock.assertIsSatisfied();

使用这有一些限制。MockEndpoint 上的 getExchanges ()getReceivedExchanges () 方法只返回 Exchanges 的保留副本。因此,在上面的示例中,列表中包含 10 个交换;前五个,以及最后五个。
reserved FirstkeepLast 选项也有您可以使用哪些预期方法的限制。例如,处理消息正文、标头等的 预期的XXX 方法将仅对保留的消息进行操作。在上面的示例中,它们只能测试 10 个保留的消息上的预期。