当前位置: 首页 > 知识库问答 >
问题:

比较响应实体Spring Test MockMVC

爱茂勋
2023-03-14

是否可以使用MockMCV比较实际的响应实体和从控制器返回的响应实体?

@Test
public void testStatusGetAllCars() throws Exception {
    ResponseEntity<?> expectedResponse = carController.getAllCars();

    mockMVC.perform(MockMvcRequestBuilders.get("/api/cars"))
    .andDo(MockMvcResultHandlers.print())
    .andExpect(MockMvcResultMatchers.status().isOk())
    .andExpect(MockMvcResultMatchers.content().contentType("application/hal+json;charset=UTF-8"))
    .andExpect( /// compare goes here // );

}

共有1个答案

饶曦之
2023-03-14

控制器返回json作为ResponseEntity的主体。您可以使用jackson并使用NodeObject和Objectmapper创建预期的json对象

看到https://attacomsian.com/blog/jackson-create-json-object

ObjectMapper mapper = new ObjectMapper();

NodeObject expected = mapper.createObjectNode();
//then put your fields

现在你可以使用

.andExpect(MockMvcResultMatchers.content().json(expected.toString());

这对我有用

 类似资料:
  • 我需要一种标准方法来比较JPA实体与其DTO并确定它们是否代表相同的业务对象。我可以想到三种方法,每个DTO上的自定义方法,带有静态方法的接口或比较器。 基于若昂·迪亚斯的回答,方法4-继承。 优点/缺点 方法1-一路坏 方法2-使用接口支持组合而不是继承,但需要使用自定义方法名称的语义学() 方法3-不需要修改源代码 方法4-简化语义学,因为它使用标准但需要“样板 这些方法的任何其他优缺点或对其

  • 我使用的是Spring版本4(Spring data),我想将Object作为JSON返回,我想知道以下代码即使不使用xmlRootElement注释用户类也能工作: 任何机构都可以解释吗?当我需要注释要返回为JSON的对象类时,响应体/响应实体是否自己完成工作?

  • 我正在从jsp调用一个endpoint: 它返回对象类型。 来自我想将响应保存在该对象中,以便解析查询结果。 错误: 问:这是保存ResultSet响应的正确方法吗?

  • Javers v5.6.3 我有一个父实体,其中包含一系列子实体。当我区分两个父母列表,发现一个孩子有变化时,我需要知道哪个父母包含变化的孩子。 我的实体: 我想要区分的是: 为了简洁起见,切换到Groovy: 我是如何区分的: 输出: 我的问题是: 如何发现哪个父级包含子级/c1? 除了我有一个老板集合之外,这类似于应该检测薪酬变化()示例。使用该示例,给定具有不同下属的老板列表,如何找出的老板

  • 我可以使用toEntity()方法返回ResponseEntity,如下所示: 但是我想在返回之前处理响应头。上面的代码将WebClient响应转换为响应实体并立即返回,但我想将其存储在响应实体变量中,处理它,然后返回响应实体。 我提到了这个- 当我试图将其存储在varibale中时,我遇到了这个错误-

  • 问题内容: 将JPA 2与EclipseLink实现一起使用。 我正在尝试建立一个动态查询,该查询应该使我在给定日期后仍保留一些记录。 并且在这种情况下,API中仅有的两个方法可能对我有帮助。该警告是由日食引发的: 我可以想象我没有针对此问题采取正确的方法,但是我找不到任何可能的解决方案的提示或指示。 问题答案: 问题在于,使用基于字符串的API时,无法推断-Operation 的结果值的类型。例