如何在执行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))