获取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入站端点,并检查状态代码。