java - 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);
}
解决方案
该contentType
方法不属于mockMvc
类,而是属于MockHttpServletRequestBuilder
类,它将请求的“Content-Type”标头设置为特定类型(在这种情况下,您通知端点您的请求的请求正文格式为 JSON)。
推荐阅读
- c# - Proj4Leaflet 在 Leaflet 中从 23700 转换为 4326
- reactjs - 如何存储 Fluent UI 表单字段的值?
- java - 当列表包含偶数和奇数时,如何使用 Junit 检查类的行为是否正确
- python-3.x - 在熊猫中将字符串日期转换为日期时间格式
- visual-studio-code - VSCode 远程 server.sh 在 wsl docker-desktop 中找不到节点
- c++ - 是否可以使用 push_back() 将元素输入二维向量?
- batch-file - 批处理文件中来自 DLL 的 BlockInput
- struct - Octave中的类似熊猫的对象:通过对其他字段进行操作将字段添加到结构中
- python - 使用带有复选按钮的网格和 tkinter 添加滚动条
- javascript - 如何收听元素可见性?