2017-08-09 9 views
0

私は一緒にキュウリや柑橘類を使用していて、私の@Then定義で、私は柑橘類のHTTPレスポンスを持っている:Javaでcitrus 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); 

は、JavaのJSONオブジェクトに返される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); 
    })); 
関連する問題