226.9. 使用 XML DSL 模拟现有端点
如果您不使用 camel-test
组件进行单元测试(如上所示),您可以在将 XML 文件用于路由时使用不同的方法。
该解决方案是创建新的 XML 文件,供单元测试使用,然后纳入具有您要测试的路由的预期 XML 文件。
假设我们在 camel-route.xml
文件中具有路由:
camel-route.xml 1
然后,我们按照如下所示创建一个新的 XML 文件,其中我们将包括 camel-route.xml
文件,并使用类 org.apache.camel.impl.InterceptSendToMockEndpointStrategy
(告知 Camel 模拟所有端点)来定义 spring bean:
test-camel-route.xml
<!-- the Camel route is defined in another XML file --> <import resource="camel-route.xml"/> <!-- bean which enables mocking all endpoints --> <bean id="mockAllEndpoints" class="org.apache.camel.component.mock.InterceptSendToMockEndpointStrategy"/>
<!-- the Camel route is defined in another XML file -->
<import resource="camel-route.xml"/>
<!-- bean which enables mocking all endpoints -->
<bean id="mockAllEndpoints" class="org.apache.camel.component.mock.InterceptSendToMockEndpointStrategy"/>
然后,在单元测试中,您可以加载新的 XML 文件(test-camel-route.xml
)而不是 camel-route.xml
。
要只模拟 所有日志 端点,您可以在构建器中定义 bean 的模式:
<bean id="mockAllEndpoints" class="org.apache.camel.impl.InterceptSendToMockEndpointStrategy"> <constructor-arg index="0" value="log*"/> </bean>
<bean id="mockAllEndpoints" class="org.apache.camel.impl.InterceptSendToMockEndpointStrategy">
<constructor-arg index="0" value="log*"/>
</bean>