4

我正在尝试使用此签名测试方法:

@RequestMapping(value="/Employee/{id}", method=RequestMethod.PUT, consumes="application/json") 
@Transactional
public @ResponseBody Map update(@PathVariable Integer id, 
    @RequestBody HashMap<String, Object> information) {

}

问题是 MockMvc 参数属性只接受字符串参数,有没有办法将一个HashMap或一个实例类对象作为参数传递给 RequestBody?

当我尝试将 aHashMap作为字符串传递时,我得到一个 MismatchException。

4

1 回答 1

4

您需要为此使用杰克逊。这个想法是将您的对象(不管它是 HashMap)反序列化为 JSON 字符串并将其传递给 MockMvc。

这是教程如何做到这一点。只需在那里搜索 TestClass 并看看它是如何使用的。跳过 GET 请求的单元测试。

于 2014-10-10T14:46:25.717 回答