编写测试单元
@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()); }