我正试图围绕如何为自定义组件和变换器编写单元测试。如何将消息发送到特定的Java组件?我猜我会在@Test注释方法中使用MuleClient的实例,但是如何处理特定组件呢?
答案 0 :(得分:1)
如果您的Java组件没有实现Callable
,那么就像您测试的任何Mule-unaware Java类一样对其进行单元测试。在这种情况下没有特定的骡子。
如果它确实实现了Callable
,最简单的方法是创建一个测试流,添加一个请求 - 响应VM inbound-endpoint和其中的Java组件。然后,您可以使用MuleClient
将测试消息发送到流。请注意,如果组件修改了消息属性,则需要copy-properties
元素(或等效元素)才能将修改后的属性复制到出站范围,以便在单元测试中将其断言。或者,您可以在自定义组件之后添加test:component
,但由于它只捕获邮件有效内容,因此您需要在其上注册自定义EventCallback
才能捕获完整的MuleMessage
断言财产。