93.14. 限制要保留的消息数量
Mock 端点默认保留它收到的每个交换的副本。因此,如果您测试大量消息,它将消耗内存。
我们引入了两个选项 retainFirst
和 retainLast
,它们可以用来指定只保留第 N 个和/或最后一个交换。
例如,在下面的代码中,我们只想保留第一个 5 个,最后 5 个交换收到的 5 个交换。
MockEndpoint mock = getMockEndpoint("mock:data"); mock.setRetainFirst(5); mock.setRetainLast(5); mock.expectedMessageCount(2000); mock.assertIsSatisfied();
使用这有一些限制。MockEndpoint
上的 getExchanges ()
和 getReceivedExchanges ()
方法将仅返回 Exchange 的保留副本。因此,在上面的示例中,列表将包含 10 个交换、前五个和最后 5 个。retainFirst
和 retainLast
选项还对预期可以使用的方法有限制。例如,在消息正文、标头等上工作 的预期XXX
方法将仅在保留的消息上运行。在上例中,它们只能测试 10 个保留的消息的预期。