单元测试模拟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());
    }
    

猜你喜欢

转载自www.cnblogs.com/ysource/p/10181039.html