我已经开始为我的 Mule 项目编写测试用例。
我为我的主流程编写了功能测试用例,如下所示。
public void testMainFlow_1() throws Exception{
MuleClient client = muleContext.getClient();
MuleMessage result = client.send(helloServiceAddress, fileAsString("SamplePayloads/input_Request.xml"), properties);
assertNotNull("Null Result", result);
assertEquals(result.getPayloadAsString(), fileAsString("SampleResponses/sampleResponse.xml"));
}
但我如何测试我的子流程。他们没有任何终点。那么我如何将有效负载传递给他们并测试它。
下面给出的是我的流程配置。
<flow name="main_flow" >
....
....
<flow-ref name="subflow_1" />
....
....
<flow-ref name="subflow_2" />
....
....
</flow>
<sub-flow name="subflow_1">
....
<some-transformer ... />
<out-bound call to web-service />
<some-transformer ... />
....
</sub-flow>
<sub-flow name="subflow_2">
....
<some-transformer ... />
<out-bound call to web-service />
<some-transformer ... />
....
</sub-flow>
使用FunctionalTestCase
它应该很简单:
MessageProcessor subFlow = muleContext.getRegistry().lookupObject("subflow_1");
MuleEvent result = subFlow.process(getTestEvent("test_data"));
but 它不起作用 http://www.mulesoft.org/jira/browse/MULE-6632.
目前,IMO 的最佳方法是拥有一个测试配置,其中包含您想要测试的子流程的流程包装器,并将此测试配置与您的主配置一起加载到FunctionalTestCase
.
@genjosanzo 的方法也有效,但它基于将子流程与测试代码本身预先存在的主流程相关联。我个人认为创建测试流程会更严格。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)