37.14. 使用 arrival 次进行测试


Mock 端点将消息的 arrival 时间存储为 Exchange 上的属性

Date time = exchange.getProperty(Exchange.RECEIVED_TIMESTAMP, Date.class);
Copy to Clipboard Toggle word wrap

您可以使用这些信息来知道消息何时到达模拟。此外,它还为了解之前和下一消息之间相隔的时间间隔提供基础。您可以使用此选项在 Mock 端点上通过 reachs DSL 设置预期。

例如,在下一个操作前,第一个信息应该在 0-2 秒之间达到:

mock.message(0).arrives().noLaterThan(2).seconds().beforeNext();
Copy to Clipboard Toggle word wrap

您还可以将其定义为 2nd 消息(基于索引)在上一个后没有达到 0-2 秒的时间:

mock.message(1).arrives().noLaterThan(2).seconds().afterPrevious();
Copy to Clipboard Toggle word wrap

您还可以在 间使用 设置下限。例如,假设它应该在 1 到 4 秒之间:

mock.message(1).arrives().between(1, 4).seconds().afterPrevious();
Copy to Clipboard Toggle word wrap

您还可以设置所有信息的预期,例如,它们之间的差距应该至少为 1 秒:

mock.allMessages().arrives().noLaterThan(1).seconds().beforeNext();
Copy to Clipboard Toggle word wrap
注意

上面示例中的 时间单元
使用 seconds 作为时区,但 Camel 也提供 毫秒分钟

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat