基于JUnit测试Spring MVC的正确方法。(仅限Spring 3.2)
程序员文章站
2022-07-14 13:57:33
...
- 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中已经被包含,我没有在其他版本中测试。