2017-08-09 19 views
0

我使用的是黃瓜,柑橘在一起,在我@Then定義,我有柑橘HTTP響應:如何訪問Java中的柑橘http接收消息正文?

@CitrusResource TestRunner runner; 

runner.http(builder -> { 
    final HttpClientResponseActionBuilder rab = 
     builder.client("citrusEndpointAPI").receive() 
     .response(HttpStatus.OK).messageType(MessageType.JSON) 
     .contentType(MediaType.APPLICATION_JSON_VALUE); 

是否有返回的JSON消息體存儲到一個Java JSON對象的方法嗎?

回答

0

您可以使用本地消息存儲。在測試過程中,每條消息應該保存到內存中的本地。你可以通過它的名字在測試用例後訪問所存儲的信息:

receive(action -> action.endpoint("sampleEndpoint") 
    .name("sampleMessage") 
    .payload("...")); 

echo("citrus:message(sampleMessage.payload())"); 

請注意,我們命名收到的消息sampleMessage。您也可以通過自定義測試操作中的測試上下文訪問消息存儲。

context.getMessageStore().getMessage("sampleMessage"); 

除此之外,您還可以在Java DSL中使用自定義消息驗證回調。在這裏您可以完全訪問收到的消息內容。

receive(action -> action.endpoint("sampleEndpoint") 
    .validationCallback((message, context) -> { 
     //Do something with message content 
     message.getPayload(String.class); 
    }));