基于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中已经被包含,我没有在其他版本中测试。

相关推荐