controller类@RequestMapping("/emps") public String getAll(@RequestParam(value = "pn",defaultValue = "1") Integer pn, Model model){ PageHelper.startPage(pn,10); List<Employee> emps = employeeService.getAll(); PageInfo pageInfo = new PageInfo(emps,6); model.addAttribute("pageInfo",pageInfo); return "sdfsd"; }
Test类@Test public void testPage() throws Exception { MvcResult result = mockMvc.perform(MockMvcRequestBuilders.get("/emps"). param("pn", "3")).andReturn(); MockHttpServletRequest request = result.getRequest(); PageInfo pi = (PageInfo)request.getAttribute("pageInfo"); System.out.println("当前是第"+pi.getPageNum()); System.out.println("当前是第"+pi.getTotal()); List<Employee> list = pi.getList(); for (Employee e : list) { System.out.println(e.getEmpName()+" "+e.getEmail()); }
由于在controller类上面使用了@RestController注解
导致getAll()方法返回值为String的时候Test类中request.getAttribute(“pageInfo”);报空指针异常
而把返回值改为Model则可以获取数据
但将controller类上面的注解换成@Controller时
request.getAttribute(“pageInfo”);则可以正常获取数据