一种使用Rest-Assured框架做Spring MVC mock module测试的思路

本文是号称“小能手”的我同事李工在2018年10月18号发表于公众号“CI智创未来”的一篇文章,特为大家转载分享。

 

在介绍Rest-Assured框架前,我们需要了解两个知识点:

1)Spring MVC测试框架

2)MockMVC

 

Spring MVC 测试框架

Spring MVC 测试框架(Spring MVC Test framework)是支持junit的,用于测试客户端/(Spring MVC编码)服务器端的API。它通过TestContext框架加载spring配置文件,DispatcherServlet处理请求。它基本上接近于全量集成测试,但是不需要启动Servlet容器。

Spring MVC测试框架原理是在DispatcherServlet调用controller时,重写controller,用于执行请求和生成响应。

Spring MVC测试基于Servlet API的mock实现,这样处理请求和生成返回信息就不用启动Servlet容器了。除了渲染JSP 页面外,其它功能都可以在Spring MVC框架中被测试,也可以说,所有包含 @ResponseBody 和返回View类型(Freemarker,Velocity, Thymeleaf,jsp)的用于产生HTML、JSON、XML内容的方法,都可以在Spring MVC测试框架下如预期一样工作,并在response中包含生成的内容。

 

Mock MVC

对模块进行集成测试时,希望能够通过输入URL对Controller进行测试,如果通过启动服务器,建立http client进行测试,这样会使得测试变得很麻烦,比如,启动速度慢,测试验证不方便,依赖网络环境等,所以为了可以对Controller进行测试,我们引入了Mock MVC。

Mock MVC实现了对Http请求的模拟,能够直接使用网络的形式,转换到Controller的调用,这样可以使得测试速度快、不依赖网络环境,而且提供了一套验证的工具,这样可以使得请求的验证统一而且很方便。

正文:Rest-Assured介绍

Rest-assured 是一个测试Restful web service的框架,提供了一系列功能像DSL式的语法, XPath-Validate,  文件上传,Specification重用,使用代理, Spring MVC mock module测试Controllers等等,让你在Java里面测试Rest service 和那些动态语言Ruby, Groovy一样灵活。

 

主要语法:

 

使用步骤:

1. 增加Dependency:

 

2. 在JUnit测试中加上对应的引入:

3. 在JUnit测试中启动Mock MVC实现对Http请求的模拟:

 

4. 测试用例几种示例写法:

 

参考文献:

Spring MVC 测试框架:https://docs.spring.io/spring/docs/4.0.0.RELEASE/spring-framework-reference/htmlsingle/#unit-testing-spring-mvc

 

REST-assured:

http://rest-assured.io/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值