如何编写一个测试,通过spring mvc test将json发送到@RequestBody方法

时间:2013-02-09 03:31:49

标签: json spring spring-mvc

我的测试

  ObjectMapper objectMapper = new ObjectMapper();
  objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
  byte[] bytes = objectMapper.writeValueAsBytes(webFile);
  this.mockMvc.perform(post("/loadFile.json").accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON).content(bytes)).andExpect(status().isOk());

我的控制器

@RequiredPermission(RequiredPermission.OperationType.viewProject)
@RequestMapping(value = "/loadFile", method = RequestMethod.POST)
public
@ResponseBody
ModelAndView load(@RequestBody WebFile document)
         { ... }

但总是得到400错误

1 个答案:

答案 0 :(得分:1)

在测试中,您使用的是网址/loadFile.json,但在您的控制器中,您有/loadFile。如果不将测试类中的url更改为/loadFile,您是否正在使用某些urlrewriter?测试类中的所有其他代码似乎都是正确的。