我正在尝试使用此签名测试方法:
@RequestMapping(value="/Employee/{id}", method=RequestMethod.PUT, consumes="application/json")
@Transactional
public @ResponseBody Map update(@PathVariable Integer id,
@RequestBody HashMap<String, Object> information) {
}
问题是MockMvc参数属性仅接受String参数,是否可以将HashMap或实例类对象作为参数传递给RequestBody?
当我尝试将HashMap作为字符串传递时,出现MismatchException.
解决方法:
您需要为此使用Jackson.这个想法是将对象反序列化(与HashMap无关)到JSON字符串中,然后将其传递到MockMvc中.
Here is tutorial how to do that.只需在其中搜索TestClass并查看其用法.跳过GET请求的单元测试.