第 226 章 模拟组件


作为 Camel 版本 1.0 可用

对分布式和异步处理的测试非常困难。MockTestDataSet 端点与 Camel 测试框架一起工作,使用 企业集成模式 和 Camel 的大量组件与强大的 Bean 集成来简化您的单元和集成测试。

Mock 组件提供了一个强大的声明性测试机制,这与 jMock 类似,它在测试开始前可以在任何 Mock 端点上创建声明性预期。然后,运行测试,它通常会将消息触发到一个或多个端点,最后在测试案例中断言预期,以确保系统按预期工作。

这可让您测试各种内容,例如:

  • 在每个端点上接收了正确的消息数量,
  • 正确的有效负载会按照正确的顺序接收,
  • 消息到达端点,使用一些表达式来创建顺序测试功能,
  • 消息到达某些类型相等,例如,特定标头具有特定的值,或者消息的部分与某些 predicate 匹配,例如通过评估 XPathXQuery 表达式。
注意

还有一个 Test 端点,它是一个 Mock 端点,但它使用第二个端点来提供预期消息正文列表,并自动设置 Mock 端点断言列表。换句话说,它是一个 Mock 端点,它可自动从文件或 数据库中 的一些示例消息中设置断言,例如:

Important

模拟端点会无限期地保留接收的 Exchange。

请记住,Mock 是为测试设计的。将 Mock 端点添加到路由时,发送到端点的每个 Exchange 将存储(以允许以后验证)在内存中,直到显式重置或 JVM 重新启动。如果您发送高卷和/或大型信息,则可能会导致过量使用内存。如果您的目标是在测试内联测试路由,请考虑在测试中使用 NotifyBuilder 或 AdviceWith,而不是添加 Mock 端点来直接路由。

从 Camel 2.10 开始,有两个新选项保留了 First,并且保留了 Last,可用于限制 Mock 端点在内存中保存的消息数量

226.1. URI 格式

mock:someName[?options]
Copy to Clipboard Toggle word wrap

其中 someName 可以是唯一标识端点的任何字符串。

您可以使用以下格式在 URI 中附加查询选项 ?option=value&option=value&…​

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat