【问题标题】:How to map mock mvc GET call into java POJO?如何将模拟 mvc GET 调用映射到 java POJO?
【发布时间】:2017-06-23 16:24:41
【问题描述】:

我有一个休息控制器方法,它返回一个对象CompositeObject,其中包含几个其他对象和结构(地图和列表)。我想编写一个测试来测试其余的 get 调用是否与字段一起返回该对象(即使这些字段的值为 null),但我不知道如何映射下面的模拟 mvc 调用的响应:

String response = this.mockMvc.perform(get("/getclassdata?classCode=cs").accept("application/json"))
                .andExpect(status().isOk())
                .andReturn().getResponse().getContentAsString();

这个测试工作正常,但是我想检查返回的 JSON 是否是我感兴趣的对象 (CompositeObject),并确保它包含所有必需的字段。我该如何测试呢?测试框架中有没有类似instanceof的东西?

谢谢。

【问题讨论】:

    标签: testing spring-boot jackson mockmvc


    【解决方案1】:

    您可以使用com.fasterxml.jackson.databind.ObjectMapper 读取对 POJO 的 Json 响应:

    ObjectMapper mapper = new ObjectMapper();
    
    MvcResult mvcResult = mockMvc.perform(get("/example-endpoint")).andReturn();
    
    ExampleResponse parsedResponse = mapper.readValue(mvcResult.getResponse().getContentAsByteArray(), ExampleResponse.class);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-24
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      相关资源
      最近更新 更多