使用SpringMvc提供的测试类,测试每个与页面交互的Controller中的方法

3 篇文章 0 订阅

首先要导包:

<!--单元测试-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    其他的包不一一列举了
  1. 声明测试类引擎@RunWith
  2. 指定Spring和SpringMVC配置文件的位置@ContextConfiguration
  3. 获取WebApplicationContext对象context需要两个步骤
    (1) @Autowired //只能自动装配ioc容器里面的
    WebApplicationContext context;
    (2)@WebAppConfiguration //把WebIOC容器也拿过来
  4. 构造虚拟mvc请求MockMvc (带有@Before(Junit标签)这个标签的方法为每次运行测试方法前执行此方法。)
  5. 通过虚拟mvc请求进行获取请求数据
    MvcResult result =mockMvc.perform
    (MockMvcRequestBuilders.get("/emps").param(“pn”, “1”))
    这里模拟的是get请求,还可以模拟post等其他类型请求
  6. 拿到的request就可拿到Controller类中方法请求的各类数据了。
/**
 * 使用Spring测试模块提供的测试请求功能,测试crud请求的正确性
 * @author Bing
 *
 */

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration	//把WebIOC容器也拿过来
@ContextConfiguration(locations = {"classpath:applicationContext.xml","file:src/main/webapp/WEB-INF/dispatcherServlet.xml"})
public class MvcTest {
	//传入SpringMvc的ioc
	@Autowired	//只能自动装配ioc容器里面的
	WebApplicationContext context;
	//虚拟mvc请求,获取到处理结果
	MockMvc mockMvc;
	
	@Before	//在每个测试方法执行前运行以下方法
	public void initMokcMvc() {
		mockMvc = MockMvcBuilders.webAppContextSetup(context).build();
	}
	
	@Test
	public void testPage() throws Exception {
		//模拟请求拿到返回值
		MvcResult result = mockMvc.perform(MockMvcRequestBuilders.get("/emps").param("pn", "1"))
		.andReturn();
		
		//请求成功以后,请求域中会有pageInfo;我们可以取出pageInfo进行验证
		MockHttpServletRequest request = result.getRequest();
		PageInfo pageInfo = (PageInfo)request.getAttribute("pageInfo");
		
		
		System.out.println("当前页码:"+pageInfo.getPages());
		System.out.println("总记录数:"+pageInfo.getTotal());
		int[] navigatepageNums = pageInfo.getNavigatepageNums();
		System.out.print("在页面需要连续显示的页码:");
		for (int i : navigatepageNums) {
			System.out.print(" "+i);
		}
		
		System.out.println();
		//获取员工数据
		List<Employee> list =pageInfo.getList();
		for (Employee employee : list) {
			System.out.println("请求结果:"+employee);
		}
	}
}

测试类结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值