Java 模拟服务器请求
我使用的是spring,在我的控制器方法中,我需要一个查询参数Java 模拟服务器请求,java,spring,servlets,junit,Java,Spring,Servlets,Junit,我使用的是spring,在我的控制器方法中,我需要一个查询参数 @RequestMapping(method = RequestMethod.GET) public MyClass myMethod( @ApiParam(defaultValue = "some string", value = "some text") @RequestParam("myParam") MyClass2 myParam) { //do something
@RequestMapping(method = RequestMethod.GET)
public MyClass myMethod(
@ApiParam(defaultValue = "some string", value = "some text") @RequestParam("myParam") MyClass2 myParam) {
//do something
}
现在,在JUnit测试中,我想调用这个方法,为此我预先准备了一个请求,但是我找不到一个正确的方法来setQueryString()
构造新对象并在其上调用toString()
无效。
(调用空构造函数正在创建具有随机值的对象)
故障跟踪:
org.springframework.web.bind.MissingServletRequestParameterException:必需的MyClass2参数“myParam”不存在。
如何正确创建此类请求?使用
使用
我正在尝试这种方法,但它表明错误
类型ResultActions的方法参数(String,String)未定义。我的错param
在get(“/”)
之后调用。是否有类似于.param()
的方法来传递URI参数?基本上,您只需要说一些类似于get(“/{id}”,5)
的话。我尝试这样做,但它表明错误类型resultations的方法参数(String,String)未定义。我的错param
在get(“/”)
之后调用。是否有类似于.param()
的方法来传递URI参数?基本上,您只需要说一些类似于get(“/{id}”,5)
。
MockHttpServletRequest request = new MockHttpServletRequest();
request.setRequestURI("/pathToMyMethod");
request.setQueryString(new MyClass2().toString());
mockMvc.perform(get("/").param("myParam", "paramValue"))
.andExpect(status().isOk());