java - 模拟服务器请求

标签 java spring servlets junit

我正在使用 spring,并且在我的 Controller 方法中我期待一个查询参数

@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:所需的 MyClass2 参数“myParam”不存在。

如何正确创建此类请求?

最佳答案

使用MockMvc .

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

关于java - 模拟服务器请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39743201/

相关文章:

Java - 使用当前包中的非公共(public)类会导致编译错误

java - 如何打开电子邮件客户端并在java中自动附加文件

java - Spring MVC MongoDB 配置

java - 使用 MVC 和 DAO 模式在 JSP 页面中的 HTML 中显示 JDBC 结果集

java - Kafka Template 和 kafka producer 有什么区别?

java - 布雷森汉姆3d椭球问题

java - JVM版本冲突导致Eclipse/Jetty无法正常运行

javascript - 将 Spring 模型属性传递给 JS 脚本

java - Spring 网络流 : how is a request handled?

java - 如何在java中服务器端获取<select>的值