如何在单元测试中使用MuleClient在Mule Flow中定位特定的自定义Java组件

时间:2013-12-27 19:16:22

标签: mule

我正试图围绕如何为自定义组件和变换器编写单元测试。如何将消息发送到特定的Java组件?我猜我会在@Test注释方法中使用MuleClient的实例,但是如何处理特定组件呢?

1 个答案:

答案 0 :(得分:1)

如果您的Java组件没有实现Callable,那么就像您测试的任何Mule-unaware Java类一样对其进行单元测试。在这种情况下没有特定的骡子。

如果它确实实现了Callable,最简单的方法是创建一个测试流,添加一个请求 - 响应VM inbound-endpoint和其中的Java组件。然后,您可以使用MuleClient将测试消息发送到流。请注意,如果组件修改了消息属性,则需要copy-properties元素(或等效元素)才能将修改后的属性复制到出站范围,以便在单元测试中将其断言。或者,您可以在自定义组件之后添加test:component,但由于它只捕获邮件有效内容,因此您需要在其上注册自定义EventCallback才能捕获完整的MuleMessage断言财产。