SpringMVC工程Controller、Service單元測試程式碼
阿新 • • 發佈:2018-11-09
applicationContext.xml 為spring配置檔案
spring-mvc.xml 為springmvc配置檔案
junit4 單元測試DEMO程式碼
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mock.web.MockHttpServletResponse; 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.web.context.WebApplicationContext; import com.fly.demo.service.MeasureService; import com.fly.demo.service.UsersService; @WebAppConfiguration @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({"/applicationContext.xml", "/spring-mvc.xml"}) public class RestControllerTest { private static final Logger LOGGER = LoggerFactory.getLogger(RestControllerTest.class); @Autowired private WebApplicationContext wac; @Autowired UsersService usersService; @Autowired MeasureService measureService; private MockMvc mockMvc; @Before public void setup() { mockMvc = webAppContextSetup(wac).build(); LOGGER.info("★★★★★★★★ WebApplicationContext = {}", wac); int i = 1; for (String beanName : wac.getBeanDefinitionNames()) { LOGGER.info("{}.\t{}", i, beanName); i++; } } @Test public void testService() { usersService.queryAll(); measureService.queryAll(); } /** * 測試 RestAPI * * @throws Exception * * @see [類、類#方法、類#成員] */ @Test public void testRestAPI() throws Exception { // get MockHttpServletResponse response = mockMvc.perform(get("/test/start").param("pageNo", "1").param("pageSize", "5")).andReturn().getResponse(); LOGGER.info("★★★★★★★★ Response Status = {}", response.getStatus()); LOGGER.info("★★★★★★★★ ContentType = {}", response.getContentType()); LOGGER.info("★★★★★★★★ Response Body = {}", response.getContentAsString()); // post response = mockMvc.perform(post("/test/start").param("pageNo", "1").param("pageSize", "10")).andReturn().getResponse(); LOGGER.info("★★★★★★★★ Response Status = {}", response.getStatus()); LOGGER.info("★★★★★★★★ ContentType = {}", response.getContentType()); LOGGER.info("★★★★★★★★ Response Body = {}", response.getContentAsString()); } }