mock api测试demo
前言
本测试demo基于Spring框架测试,这几个月也是刚刚接触Spring的项目。如果不对的地方请多谅解。
正文
1、创建测试类,添加注解
@RunWith(SpringRunner.class)
@SpringBootTest
2、 添加自己要测试Controller作为成员变量,同时将我们自己的Mock类添加作为成员变量,目的是通过它来调用我们的api。我们自己的mock中引用的是MockMvc这个类,在org.springframework.test.web.servlet包下面。
在我们自己封装mock中的构造函数中来启动controller
public MockMvcCore(Object... controllers) {
if (mockMvc == null) {
mockMvc = MockMvcBuilders.standaloneSetup(controllers).build();
}
}
3、编写我们自己的调用测试方法
1、调用时候需要MockHttpServletRequestBuilder类,通过它来获取我们的请求方式:put,get,post,delete。直接点的方式就有这些方法,参数为我们的url地址。
MockMvcRequestBuilders.get(url)
2、MockHttpServletRequestBuilder.params(parameters);这个方法来设置我们的参入的参数,参数为Map类型;其中还有很多的方法,可以进行设置我们的请求内容。
mockHttpServletRequestBuilder.contentType(MediaType.APPLICATION_JSON);
mockHttpServletRequestBuilder.content(requestBody);
3、发起请求 ResultActions resultActions = mockMvc(就是MockMvc类).perform(mockHttpServletRequestBuilder);
4、拿到请求的结果 MvcResult result = resultActions.andReturn();这个时候就拿到结果了,是整体的结果。
5、最后拿到api相应的返回内容 result.getResponse().getContentAsString();
一般项目中都是要封装起来的以上的过程,是我从项目的封装分析处理的也就是没有面向对象的一个顺序。下面就是按照上面步骤的一个测试api方法。
@Test
public void test() throws Exception{ MockMvc m = MockMvcBuilders.standaloneSetup(myController).build();
MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("myUrl");
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
parameters.add("参数字段名","参数字段值");
builder.params(parameters);
ResultActions actions = m.perform(builder);
MvcResult result = actions.andReturn();
String content = result.getResponse().getContentAsString();
}
总结
大致就这么一个简单过程,封装起来就可以灵活应用了。也是第一次用Mock写测试,还请谅解。
Life is a journey. What we should care about is not where it's headed but what we see and how we feel
mock api测试demo的更多相关文章
- API 测试的具体实现
目录 API 测试的具体实现 基于 Spring Boot 构建的 API 使用 cURL 命令行工具进行测试 使用图形界面工具 Postman 进行测试 如何应对复杂场景的 API 测试? 总结 A ...
- JSX AS DSL? 写个 Mock API 服务器看看
这几天打算写一个简单的 API Mock 服务器,老生常谈哈?其实我是想讲 JSX, Mock 服务器只是一个幌子. 我在寻找一种更简洁.方便.同时又可以灵活扩展的.和别人不太一样的方式,来定义各种 ...
- android gps开发必备资料(含测试demo下载)
入门资料参考: How accurate is Android GPS? Part 1: Understanding Location Data How accurate is Android GPS ...
- 开源API测试工具 Hitchhiker v0.6更新 - 改进压力测试
Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起协作测试 ...
- 如何通过Mock API提高APP开发效率?
APP开发过程中,如果可以在客户端的正常项目代码中,自然地(不影响最终apk)添加一种模拟服务器数据返回的功能,这样就可以很方便的在不依赖服务器的情况下展开客户端的开发. Mock API提供了这一问 ...
- Mock API是如何在开发中发光发热的?
在长期的服务过程中,我们经常会遇到前来咨询的用户与我们反馈以下这种情况:咨询者是一个前端人员,在项目开发的过程中需要与后端进行对接,遇到后端还没完成数据输出的情况下,他只好写静态模拟数据,在遇到大型项 ...
- MOCK API 的定义及实践(使用eolinker实现)
MOCK API 的定义 根据百度百科的定义,mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法.这个虚拟的对象就是mock对象,mock对 ...
- Python+Flask搭建mock api server
Python+Flask搭建mock api server 前言: 近期由于工作需要,需要一个Mock Server调用接口直接返回API结果: 假如可以先通过接口文档的定义,自己模拟出服务器返回结果 ...
- 《软件测试52讲》读书笔记 —— API测试怎么做
前言 文章中还介绍了测试工具,比如cURL.postman,单API如何测试:但这些都是偏基础的东西,且网上教程各式各样,就不再赘述了:这里主要讲的就是关于复杂场景的API测试要如何应对 API测试的 ...
随机推荐
- Java-接口的本质
https://mp.weixin.qq.com/s/tEVw0j18rX2hxt-guXQJ-w 大道至简,本质往往是很朴素的. 本质: 类是主体,接口是主体之间交流沟通的规约. 位置:1. 主体站 ...
- jchdl - RTL实例 - MOS6502 CPU
https://mp.weixin.qq.com/s/OguQKMU64GGdinCJjgyeKw 实现MOS6502 CPU,主要是实现状态机. 参考链接 https://github.co ...
- ES 或 Solr 分词器的相关面试题:
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.ES 中的 IK 分词器能分中文和英语的原因是什么? ik分词器为中文分词器,默认可对中文分词:通过 ...
- java实现国庆星期日
** 国庆星期日** 1949年的国庆节(10月1日)是星期六. 今年(2012)的国庆节是星期一. 那么,从建国到现在,有几次国庆节正好是星期日呢? 只要答案,不限手段! 可以用windows日历, ...
- Python 网络爬虫基本概念篇
爬虫的概念 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.这是百度百科对爬虫的定义,其实,说简单点,爬虫 ...
- inotify监听文件
inotify监听文件并通知 static int inotify_dbfile(const char *spFromRule, const char *spDevFile) { int inotif ...
- 扩展.Django-权限系统
目录 Django权限系统auth User 新建用户 认证用户 修改密码 登录 退出登录 只允许登录的用户访问 Group Permission 检查用户权限 管理用户权限 自定义权限 Django ...
- 实现saas多租户方案比较
看到一篇比较多租户数据隔离方案的文章,总结挺不错.其实大部分内容在我前几年写的文章都有. 文章翻译自: https://blog.arkency.com/comparison-of-approache ...
- Flutter学习笔记(31)--异步更新UI
如需转载,请注明出处:Flutter学习笔记(31)--异步更新UI 大家都知道,子线程不能操作UI控件,在我们Android的日常开发中,经常会遇到网络请求数据通过线程间通信,将数据发送到UI线程中 ...
- git status –s
状态简览 git status 命令的输出十分详细,但其用语有些繁琐. 如果你使用 git status -s 命令或 git status --short 命令,你将得到一种更为紧凑的格式输出. 运 ...