单元测试模拟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()); }
学习本是一个不断抄袭、模仿、练习、创新的过程。
虽然,园中已有本人无法超越的同主题博文,为什么还是要写。
对于自己,博文只是总结。在总结的过程发现问题,解决问题。
对于他人,在此过程如果还能附带帮助他人,那就再好不过了。
由于博主能力有限,文中可能存在描述不正确,欢迎指正、补充!
感谢您的阅读。如果文章对您有用,那么请轻轻点个赞,以资鼓励。