基于JUnit测试Spring MVC的正确方法。(仅限Spring 3.2)


package controller;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;

import cn.com.fri.sysconfig.controller.SYSUserController;

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations = { "classpath:applicationContext-core.xml",
"classpath:applicationContext-servlet.xml" })
public class TestController {

@Autowired
private WebApplicationContext wac;

@Autowired
private SYSUserController userController;//你要测试的Controller

private MockMvc mockMvc;

@Before
public void setup() {
mockMvc = MockMvcBuilders.standaloneSetup(userController).build();
}

@Test
public void testFindPageUsers() throws Exception {
ResultActions ra = this.mockMvc.perform(MockMvcRequestBuilders
.post("/sysconfig/user/findPageUsers")
.accept(MediaType.APPLICATION_JSON).param("page", "1")
.param("limit", "10"));
MvcResult mr = ra.andReturn();
String result = mr.getResponse().getContentAsString();
log.info(result);
}

}


Spring-mvc-test包在Spring 3.2中已经被包含,我没有在其他版本中测试。

你可能感兴趣的:(Spring)