MockMvc详解——SpringMVC单元测试

一、简介
为何使用MockMvc?
        对模块进行集成测试时,希望能够通过输入URL对Controller进行测试,如果通过启动服务器,建立http client进行测试,这样会使得测试变得很麻烦,比如,启动速度慢,测试验证不方便,依赖网络环境等,所以为了可以对Controller进行测试,我们引入了MockMVC。
        MockMvc实现了对Http请求的模拟,能够直接使用网络的形式,转换到Controller的调用,这样可以使得测试速度快、不依赖网络环境,而且提供了一套验证的工具,这样可以使得请求的验证统一而且很方便。
 

二、测试逻辑
 1、MockMvcBuilder构造MockMvc的构造器
 2、mockMvc调用perform,执行一个RequestBuilder请求,调用controller的业务处理逻辑

RequestBuilder request = null;

request = get("/users/");

mvc.perform(request)
		.andExpect(status().isOk())
		.andExpect(content().string(equalTo("[]")));


 3、perform返回ResultActions,返回操作结果,通过ResultActions,提供了统一的验证方式
 4、使用StatusResultMatchers对请求结果进行验证
 5、使用ContentResultMatchers对请求返回的内容进行验证
 

三、MockMvcBuilder
MockMvc是spring测试下的一个非常好用的类,他们的初始化需要在setUp中进行。
MockMvcBuilder是用来构造MockMvc的构造器,其主要有两个实现:StandaloneMockMvcBuilder和DefaultMockMvcBuilder,前者继承了后者。

private MockMvc mvc;
@Before
public void setUp() throws Exception {
	mvc = MockMvcBuilders.standaloneSetup(
			new HelloController(),
			new UserController()).build();
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值