我有一个流程,我试图使用Munit测试Mule中的基本HTTP流,流程看起来像这样:
<flow name="health-checkFlow">
<http:listener config-ref="HTTP_Listener_Configuration"
path="/" allowedMethods="GET" doc:name="HTTP">
<http:response-builder />
</http:listener>
....
</flow>
使用Munit我正在调用流程:
MuleEvent resultEvent = runFlow("health-checkFlow", testEvent(""));
resultEvent对象具有适当的有效负载,但是当我尝试使用:
获取http响应代码时 assertEquals("HTTP status code should be 200","200",resultEvent.getMessage().getOutboundProperty("http.status"));
状态始终为null。如何从Munit中的消息中获取http响应代码?
答案 0 :(得分:1)
通过调用runFlow,您实际上绕过了http:listener并直接调用了流。默认情况下,将禁用入站端点和连接器。要测试http部分,请在测试用例中覆盖以下内容:
@Override
protected boolean haveToMockMuleConnectors()
{
return false;
}
@Override
protected boolean haveToDisableInboundEndpoints()
{
return false;
}
然后我会使用标准的Java HTTP客户端或Mule Client来测试HTTP入站端点并检查状态代码。