這是我的控制器方法:Spring測試-MVC PUT不支持
@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測試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));
}
運行這個測試case生成:
WARN org.springframework.web.servlet.PageNotFound - Request method 'PUT' not supported
此外,updateUser方法從未被調用和響應代碼是405.
我寫了很多測試,所有的GET請求,他們正常工作。這意味着我對ContextConfiguration有信心。我錯過了什麼?
一年後。這裏有同樣的問題。你有沒有要求提出要求?在此先感謝,橡樹 – oak
好吧,我得到它我轉換爲JSON也沒有二傳手getters。那裏的請求被拒絕了。我的解決方案是跳過那些獲得者。即:ObjectMapper mapper = new ObjectMapper(); mapper.configure(MapperFeature.REQUIRE_SETTERS_FOR_GETTERS,true); return mapper.writeValueAsBytes(object);' – oak