此内容没有您所选择的语言版本。

Chapter 175. Test


Test Component

The test component extends the Mock component to support pulling messages from another endpoint on startup to set the expected message bodies on the underlying Mock endpoint. That is, you use the test endpoint in a route and messages arriving on it will be implicitly compared to some expected messages extracted from some other location.
So you can use, for example, an expected set of message bodies as files. This will then set up a properly configured Mock endpoint, which is only valid if the received messages match the number of expected messages and their message payloads are equal.
Maven users will need to add the following dependency to their pom.xml for this component when using Camel 2.8 or older:
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-spring</artifactId>
    <version>2.17.0.redhat-630xxx</version>
    <!-- use the same version as your Camel core version -->
</dependency>
From Camel 2.9 onwards the Test component is provided directly in the camel-core.

URI format

test:expectedMessagesEndpointUri
Where expectedMessagesEndpointUri refers to some other Component URI that the expected message bodies are pulled from before starting the test.

URI Options

Name Default Value Description
timeout 2000 Camel 2.12: The timeout to use when polling for message bodies from the URI.
anyOrder false Camel 2.17: Whether the expected messages should arrive in the same order or can be in any order.
split false Camel 2.17: If enabled, the messages loaded from the test endpoint will be split using \n, \r delimiters (new lines) so each line is an expected message. For example, to use a file endpoint to load a file where each line is an expected message.
delimiter \n|\r Camel 2.17: The split delimiter to use when split is enabled. By default the delimiter is new line based. The delimiter can be a regular expression.

Example

For example, you could write a test case as follows:
from("seda:someEndpoint").
  to("test:file://data/expectedOutput?noop=true");
If your test then invokes the MockEndpoint.assertIsSatisfied(camelContext) method, your test case will perform the necessary assertions.
To see how you can set other expectations on the test endpoint, see the Mock component.
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.