7

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を使用して正しくテストするにはどうすればよいですか?

助けてくれてありがとう。

4

1 に答える 1