Muleプロジェクトにテストケースを書き始めました。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"));
}
しかし、どのようにサブフローをテストできますか。エンドポイントはありません。だから私はどのようにそれらにペイロードを渡してテストすることができます。
私のフロー設定は以下の通りです。
FunctionalTestCase
を使用
@Test
public void invokeSubFlow() throws Exception {
MessageProcessor mp = (MessageProcessor) muleContext.getRegistry()
.lookupObject("subflow_2");
FlowConstruct parentFlow = muleContext.getRegistry().lookupFlowConstruct("main_flow");
((FlowConstructAware) mp).setFlowConstruct(muleContext.getRegistry()
.lookupFlowConstruct("subflow_2"));
Lifecycle lc = (Lifecycle) mp;
lc.initialise();
lc.start();
MuleMessage muleMessage = new DefaultMuleMessage("test", muleContext);
MuleEvent event = new DefaultMuleEvent(muleMessage,
MessageExchangePattern.REQUEST_RESPONSE,
new DefaultMuleSession(parentFlow,muleContext));
mp.process(event);
}
サブフローのラッパーフローを作成しようとしました。それは回避策です。しかし、サブフローの直接テストをサポートするMuleに何かがあるかどうか試してみたい。 – user1760178
そして私の答えで作成してリンクしたJIRAチケットをupvote/followしてください。 –
完了。どうもありがとうございました。 – user1760178