我正在尝试使用此签名测试方法:
@RequestMapping(value="/Employee/{id}", method=RequestMethod.PUT, consumes="application/json")
@Transactional
public @ResponseBody Map update(@PathVariable Integer id,
@RequestBody HashMap<String, Object> information) {
}
问题是MockMvc param属性只接受String参数,有没有办法将HashMap
或实例类对象作为参数传递给RequestBody?
当我尝试将HashMap
作为字符串传递时,我收到MismatchException。
答案 0 :(得分:3)
你需要使用杰克逊。我们的想法是将您的对象(与它的HashMap无关)反序列化为JSON字符串并将其传递给MockMvc。
Here is tutorial how to do that。只需在那里搜索TestClass并查看它是如何使用的。跳过GET请求的单元测试。