如何在执行junit时将参数传递给Spring MVC控制器中的post方法?

我正在对我的Spring MVC控制器方法进行unit testing。 下面是我尝试unit testing的方法,因为它在我启动服务器时工作正常。

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

现在我需要对同样的事情进行unit testing:

 @RequestMapping(value = "/index", method = RequestMethod.GET) public Map addNewServer() { final Map model = new LinkedHashMap(); return model; } @RequestMapping(value = "/index", method = RequestMethod.POST) public Map 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))