这是我的控制器方法:
@RequestMapping(method = RequestMethod.PUT,produces="application/json", headers = "content-type=application/json")
public @ResponseBody User updateUser(@RequestBody User user) throws PropertyErrorException, ItemNotFoundException {
return service.UpdateUser(user);
}
使用 Spring test-mvc 我想写一个单元测试用例:
@Test
public void UpdateUser() throws Exception {
mockMvc.perform(put("/r01/users").body(userJsonString.getBytes())
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().type(MediaType.APPLICATION_JSON))
.andExpect(content().string(userString));
}
运行这个测试用例会生成:
WARN org.springframework.web.servlet.PageNotFound - Request method 'PUT' not supported
此外,从不调用 updateUser 方法,响应代码为 405。
我已经编写了很多测试,所有的 GET 请求,并且它们工作正常。这意味着我对 ContextConfiguration 很有信心。我错过了什么?