首页 > 解决方案 > mockMvc .contentType(MediaType.APPLICATION_JSON) 的目的是什么?

问题描述

我不明白这种方法的意义,也找不到任何有关它的信息。使用它的原因是什么,特别是对于下面示例中的 void 方法?我试过在我的测试中删除它,似乎一切都是一样的。测试

   @Test
public void deletePatientById_success() throws Exception {
    Mockito.when(patientRecordRepository.findById(RECORD_2.getPatientId())).thenReturn(Optional.of(RECORD_2));

    mockMvc.perform(MockMvcRequestBuilders
            .delete("/patient/2")
            .contentType(MediaType.APPLICATION_JSON))
            .andExpect(status().isOk());
}

待测控制器

    @DeleteMapping(value = "{patientId}")
public void deletePatientById(@PathVariable(value = "patientId") Long patientId) throws NotFoundException {
    if (patientRecordRepository.findById(patientId).isEmpty()) {
        throw new NotFoundException("Patient with ID " + patientId + " does not exist.");
    }
    patientRecordRepository.deleteById(patientId);
}

标签: javaspringmockito

解决方案


contentType方法不属于mockMvc类,而是属于MockHttpServletRequestBuilder类,它将请求的“Content-Type”标头设置为特定类型(在这种情况下,您通知端点您的请求的请求正文格式为 JSON)。


推荐阅读