1. 程式人生 > >單元測試模擬request後臺

單元測試模擬request後臺

 

編寫測試單元

    @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()); }