2016-07-04 66 views
0

我正在尝试编写柑橘测试,用于生成和使用application/json内容的RESTful端点,而且我不确定如何让我的响应反编组到Java Java POJO(使用Jackson或其他任何un)编组Citrus支持)。从响应中提取和解组JSON有效负载

E.g.在REST保证,我可以简单地写

UploadResponse response = when().post("/file").as(UploadResponse.class); 

柑橘中是否有相当的?

我只能找到例子使用validate()extractFromPayload(),这真的不覆盖我的使用情况下,因为我不想在标量成员工作,但嵌入请求对象的整个响应对象为后续测试步骤。

回答

0

你可以做这样的事情:

http().server(testServer) 
     .post("/file") 
     .validationCallback(new JsonMappingValidationCallback<UploadResponse>(UploadResponse.class) { 
      @Override 
      public void validate(UploadResponse payload, Map<String, Object> headers, TestContext context) { 
       // do something with payload object 
      } 
     }); 

的JsonMappingValidationCallback自动为一个JSON ObjectMapper搜索中的Spring bean应用程序上下文。您还可以将ObjectMapper实例作为构造函数arg提供给JsonMappingValidationCallback。