我使用spring,在我的控制器方法中我期待查询参数
@RequestMapping(method = RequestMethod.GET)
public MyClass myMethod(
@ApiParam(defaultValue = "some string", value = "some text") @RequestParam("myParam") MyClass2 myParam) {
//do something
}
现在在JUnit测试中我想调用这个方法,为此我已经预先设置了一个请求,但是找不到setQueryString()
的正确方法
MockHttpServletRequest request = new MockHttpServletRequest();
request.setRequestURI("/pathToMyMethod");
request.setQueryString(new MyClass2().toString());
构造一个新对象并在其上调用toString()
不起作用。
(调用空构造函数创建具有随机值的对象)
失败追踪:
org.springframework.web.bind.MissingServletRequestParameterException: Required MyClass2 parameter 'myParam' is not present.
如何正确创建此类请求?
答案 0 :(得分:2)
使用MockMvc。
mockMvc.perform(get("/").param("myParam", "paramValue"))
.andExpect(status().isOk());