В Spring Rest у меня есть RestController, предоставляющий этот метод:
@RestController
@RequestMapping("/controllerPath")
public class MyController{
@RequestMapping(method = RequestMethod.POST)
public void create(@RequestParameter("myParam") Map<String, String> myMap) {
//do something
}
}
Я хотел бы протестировать этот метод, используя MockMVC из Spring:
// Initialize the map
Map<String, String> myMap = init();
// JSONify the map
ObjectMapper mapper = new ObjectMapper();
String jsonMap = mapper.writeValueAsString(myMap);
// Perform the REST call
mockMvc.perform(post("/controllerPath")
.param("myParam", jsonMap)
.andExpect(status().isOk());
Проблема в том, что я получаю код ошибки HTTP 500. Я почти уверен, что это связано с тем, что я использую Map в качестве параметра моего контроллера (я попытался изменить его на String, и это работает).
Возникает вопрос: как я могу иметь параметр Map в моем RestController и правильно протестировать его с помощью MockMVC?
Спасибо за любую помощь.