單元測試模擬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());
    }
    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM