java - 在执行junit时如何将参数传递给Spring MVC Controller 中的post方法?

标签 java spring spring-mvc junit spring-test-mvc

我正在对 Spring MVC Controller 方法进行单元测试。下面是我尝试进行单元测试的方法,因为当我启动服务器时它工作正常。

每当我点击index页面时,它都会在浏览器上显示三个文本框,我在其中输入数据并按提交按钮,然后调用转到addNewServers 使用正确的值。

现在我需要对同样的事情进行单元测试:

@RequestMapping(value = "/index", method = RequestMethod.GET)
public Map<String, String> addNewServer() {
    final Map<String, String> model = new LinkedHashMap<String, String>();
    return model;
}

@RequestMapping(value = "/index", method = RequestMethod.POST)
public Map<String, String> addNewServers(@RequestParam String[] servers, @RequestParam String[] address,
    @RequestParam String[] names) {     


}

下面是我的 junit 类:

private MockMvc mockMvc;

@Before
public void setup() throws Exception {
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
    viewResolver.setPrefix("/WEB-INF/views/");
    viewResolver.setSuffix(".jsp");

    this.mockMvc = standaloneSetup(new Controller()).setViewResolvers(viewResolver).build();
}

@Test
public void test04_newServers() throws Exception {

    String[] servers = {"3", "3", "3"};
    String[] ipaddress = {"10,20,30", "40,50,60", "70,80,90"};
    String[] hostnames = {"a,b,c", "d,e,f", "g,h,i"};


    // not sure how would I pass these values to my `addNewServers` method
    // which is a post method call.

}

谁能帮我解决这个问题吗?

最佳答案

您只需要使用 API:

mockMvc.perform(post("/index").param("servers", servers)
                              .param("address", ipaddress)
                              .param("names", hostnames))

关于java - 在执行junit时如何将参数传递给Spring MVC Controller 中的post方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22184566/

相关文章:

java - 如何仅在一个测试范围内验证不在模拟上调用方法?

java - 如何在 Spring Data 中延迟加载集合?

java - 为什么要转换为接口(interface)而不是转换为 java 类?

java - Spring 安全云 : UI service through a ZUUL gateway security setup

java - Spring MVC 404 错误

java - 用 boolean 运算符实现三值逻辑运算?

java - Xtext:引用 MyDsl 中的 Java 类

java - 单选按钮上不需要的蓝色边框,可以删除吗?

java - 在 JPA 中,如果一行存在,我可以有一个只读 boolean 值吗?

Spring 数据休息: repository multiple value request parameters