在MUnit中获取http响应代码

时间:2015-04-02 00:56:25

标签: java testing mule

我有一个流程,我试图使用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响应代码?

1 个答案:

答案 0 :(得分:1)

通过调用runFlow,您实际上绕过了http:listener并直接调用了流。默认情况下,将禁用入站端点和连接器。要测试http部分,请在测试用例中覆盖以下内容:

@Override
protected boolean haveToMockMuleConnectors()
{
return false;
}

@Override
protected boolean haveToDisableInboundEndpoints()
{
return false;
}

然后我会使用标准的Java HTTP客户端或Mule Client来测试HTTP入站端点并检查状态代码。