第 34 章 Mock


仅支持生成者

测试分布式和异步处理非常困难。MockTestDataset 端点与 Camel 测试框架合作,以使用 企业集成模式 和 Camel 的大型组件以及强大的 Bean 集成来简化单元和集成测试。

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

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

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

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

注意

模拟端点会无限期保留收到的 Exchange。
请记住,Mock 是专为测试而设计的。当您将 Mock 端点添加到路由时,发送到端点的每个交换都将在内存中存储(以允许以后验证),直到显式重置或 JVM 重新启动。如果您发送大量卷和/或大信息,这可能会导致过量内存使用。如果您的目标是测试内联可部署路由,请考虑在测试中使用 NotifyBuilder 或 AdviceWith,而不是将 Mock 端点添加到路由。有两个新选项保留First,并且 keepLast 可用于限制 Mock 端点在内存中保留的消息数量。

34.1. URI 格式

mock:someName[?options]

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.