編寫測試單元
@RunWith(SpringJUnit4ClassRunner.class) 讓測試運行於Spring測試環境
@WebAppConfiguration
是一個類級別的注釋,用於聲明ApplicationContext
為集成測試加載的應該是一個WebAppConfiguration。
@ContextConfiguration(locations={" "," "}) Spring整合JUnit4測試時,使用注解引入多個配置文件
1.編寫controller類
@Controller public class BasicMsgContrller { @Autowired BasicService basicService; @RequestMapping("alltest") public void getAllStuInfo(@RequestParam(value="a",defaultValue="1") Integer i,Model m){ //函數來指定 pageNum(第幾頁) 和 pageSize(每頁顯示幾條記錄) 兩個參數。 PageHelper.startPage(i, 5); List <Sbasicmessage> allStu = basicService.getallStu(); //使用pageInfo包裝查詢后的結果,封裝了詳細的查詢數據, PageInfo page=new PageInfo(allStu); m.addAttribute("pageInfo", page); System.out.println("總數:"+page.getTotal()); }
2.測試類
//讓測試運行於Spring測試環境 @RunWith(SpringJUnit4ClassRunner.class) //web請求容器 @WebAppConfiguration //@ContextConfiguration Spring整合JUnit4測試時,使用注解引入多個配置文件 @ContextConfiguration(locations={"classpath:applicationContext.xml","file:src/main/webapp/WEB-INF/springmvc-servlet.xml"}) public class MockMvcTest { @Autowired WebApplicationContext context; //模擬請求 MockMvc mvc; @Before public void initMockMvc(){ mvc=MockMvcBuilders.webAppContextSetup(context).build(); } @Test public void testpage() throws Exception{ //發起一次請求 andReturn返回的結果 MvcResult mvcResult=mvc.perform(MockMvcRequestBuilders.get("/alltest"). param("a","1")).andReturn(); MockHttpServletRequest mockrequest= mvcResult.getRequest(); PageInfo pageinfo=(PageInfo)mockrequest.getAttribute("pageInfo"); System.out.println("當前總頁數為"+pageinfo.getTotal()); }