有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java模拟服务器请求

我使用的是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.

如何正确创建这样的请求


共 (1) 个答案

  1. # 1 楼答案

    使用MockMvc

     mockMvc.perform(get("/").param("myParam", "paramValue"))
         .andExpect(status().isOk());