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