Spring Restには、このメソッドを公開するRestControllerがあります。
@RestController
@RequestMapping("/controllerPath")
public class MyController{
@RequestMapping(method = RequestMethod.POST)
public void create(@RequestParameter("myParam") Map<String, String> myMap) {
//do something
}
}
SpringのMockMVCを使用して、このメソッドをテストしたいと思います。
// 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());
問題は、500 HTTP エラー コードが表示されることです。これは、コントローラーのパラメーターとしてMapを使用していることが原因であると確信しています (それを String に変更してみましたが、うまくいきました)。
質問は次のとおりです: RestController にMap in パラメータを設定し、MockMVCを使用して正しくテストするにはどうすればよいですか?
助けてくれてありがとう。