單元測試模擬request後臺
阿新 • • 發佈:2018-12-26
編寫測試單元
@RunWith(SpringJUnit4ClassRunner.class) 讓測試運行於Spring測試環境
@WebAppConfiguration
是一個類級別的註釋,用於宣告ApplicationContext
為整合測試載入的應該是一個WebAppConfiguration。
@ContextConfiguration(locations={" "," "}) Spring整合JUnit4測試時,使用註解引入多個配置檔案
1.編寫controller類
@Controllerpublic 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()); }