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 First
和 keepLast
选项也有您可以使用哪些预期方法的限制。例如,处理消息正文、标头等的 预期的XXX
方法将仅对保留的消息进行操作。在上面的示例中,它们只能测试 10 个保留的消息上的预期。