一、MockWire是什么?
MockWire是一款可以快速模拟Api请求,可以让你进行广泛性测试。它用来模拟HTTP请求的API,你可以将它理解为将服务虚拟化的一个工具。
二、为什么使用MockWire?
学习一门新技术最好的方式就是去看官方API,因此我们进入到MockWire的官网来看一下,在官方文档最开始有这么一段:It enables you to stay productive when an API you depend on doesn't exist or isn't complete. It supports testing of edge cases and failure modes that the real API won't reliably produce. And because it's fast it can reduce your build time from hours down to minutes.
很显然是告诉你当你的产品没有完成或者不存在的时候,你可以使用MockWire来模拟最终的请求结果。尤其是在现在前后端分离的情况下,个人觉得更有必有使用,有些人可能要说,我不去给前端这些东西,让他自己造一堆假数据先用着,等我这边开发完了再给他不可以吗?答案是:可以!
但是这样做可能会带来一些问题,如果说项目中的前端展示只有一种比如说Browser,那你不使用MockWire可能也没什么。但如果不止是Browser展示,如淘宝网的内容需要前端展示的会有Browser、APP等,APP又分为ios、android两类操作系统展示,负责ios和android展示的前端分别是两个项目组来负责的,那么这个时候如果他们都想要展示的你还没开发完的REST服务,造假数据可能就不现实了,因此使用MockWire来伪造一个虚拟的服务,就显得非常重要。
三、使用MockWire后的效果?
前面我们介绍了为什么要使用MockWire。那么使用MockWire后对前端来说有什么改变呢?MockWire是一个服务,首先你需要搭建好它,之后你可以通过代码的方式给它里面灌服务,然后前端只要输入MockWire服务的地址就会得到相同的返回结果。
四、使用MockWire准备工作
使用MockWire的步骤有三,下载MockWire的jar包、在本地搭建MockWire、写代码来伪造REST服务。接下来一步步演示:
1、下载jar(进入到MockWire官网进行如下3部操作)
2、搭建MockWire服务
3、 执行: java -jar wiremock-standalone-2.19.0.jar 命令,后面加--port来指定服务的端口号。
五、编写代码伪造MockWire服务
我使用的是SpringBoot来开发的,首先在resources资源文件夹下新建一个文件夹mock,然后再在mock下建一个文件夹为response(随便起名字)。然后我这里写的是一个wiremocktest.txt文本,里面就是你需要返回给前端的JSON串,我这里就随便写一下,大家可以随意发挥,写复杂点的。
接下来我们正式开始编码,想要仿造服务,首先得连上服务吧,因此我们先连接刚才的9000端口(可以随便指定没占用的端口号)。
接着我们调removeAllMappings() 来清除上一次所有的映射内容,目的是为了确保每一次请求都是最新的数据。然后就是读取到刚才的txt文件,并把内容写到content里面,最后是调用stubFor来指定测试路径,接着把刚才的content写到浏览器,并且返回一个200的成功状态码,是不是觉得很简单。
六、测试
直接执行main方法,结果如下就这么启动服务成功:
网友评论