获取HTTP响应代码在MUnit

问题描述:

我有我试图测试在骡子使用Munit一个基本的HTTP流量的流量,流量看起来是这样的:获取HTTP响应代码在MUnit

<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")); 

状态始终为空。如何从Munit的消息中获取http响应代码?

通过调用runFlow,你实际上绕过了http:listener并直接调用流。默认情况下,入站端点和连接器将被禁用。为了测试HTTP部分覆盖测试用例执行以下操作:

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

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

然后我会用一个标准的Java HTTP客户端或者可能骡客户端来测试HTTP入站端点,并检查状态代码。