一、什么是Mock测试?
Mock 测试就是在测试活动中,对于某些不容易构造或者不容易获取的比较复杂的数据/场景,用一个虚拟的对象(Mock对象)来创建用于测试的测试方法。
二、为什么要进行Mock测试?
Mock是为了解决不同的单元之间由于耦合而难于开发、测试的问题。
所以,Mock既能出现在单元测试中,也会出现在集成测试、系统测试过程中。
Mock 最大的功能是帮你把单元测试的耦合分解开,如果你的代码对另一个类或者接口有依赖,它能够帮你模拟这些依赖,并帮你验证所调用的依赖的行为。
三、Mock适用场景
1. 需要将当前被测单元和其依赖模块独立开来,构造一个独立的测试环境,不关注被测单元的依赖对象,只关注被测单元的功能逻辑。
2. 被测单元依赖的模块尚未开发完成,而被测单元需要依赖模块的返回值进行后续处理。
2.1 前后端项目中,后端接口开发完成之前,接口联调
2.2 依赖的上游项目的接口尚未开发完成,需要接口联调测试
3. 被测单元依赖的对象较难模拟或者构造比较复杂
如: 支付业务的异常条件很多,但是模拟这种异常条件很复杂或者无法模拟
四、 Mock测试的优势
1. 团队可以并行工作
有了Mock,前后端人员只需要定义好接口文档就可以开始并行工作,互不影响,只在最后的联调阶段往来密切;后端与后端之间如果有接口耦合,也同样能被Mock解决;测试过程中如果遇到依赖接口没有准备好,同样可以借助Mock;不会出现一个团队等待另一个团队的情况
2. 开启测试驱动开发模式
当接口定义好后,测试人员就可以创建一个Mock,把接口添加到自动化测试环境,提前创建测试。
3. 可以模拟那些无法访问的资源
比如说,你需要调用一个“墙”外的资源来方便自己调试,就可以自己Mock一个。
4. 避免脏数据产生
我们需要调用一个post请求,为了获得某个响应,来看当前系统是否能正确处理返回的“响应”,但是这个post请求会造成数据库产生脏数据,那么就可以充分利用Mock,构造一个虚拟的post请求,我们给他指定返回就好了。
5. 可以用来演示
比如你已经做好了一个系统,并且需要给客户进行演示,但是里面有些真实数据并不想让用户看到,那么同样,你可以用Mock接口把这些敏感信息接口全部替换。
这次我以 Postcat 为例,演示如何使用 Mock 功能
使用 Mock 进行对接
在列表拿到 Mock 地址
将代码中代理地址/实际请求地址改为 Mock 地址,就可以通过 Mock 返回的数据愉快的对接啦!
这个开源的 API 工具叫 Postcat ,除了基本的文档和测试功能,还有插件广场和 MOCK 这些核心功能,个人使用后觉得还不错。还在为 API 工具发愁的友友们,不妨试试这个。
Postcat 是一款类 Postman 的开源 API 工具,它更轻量,同时可拓展。
Github:https://github.com/eolinker/postcat
Gitee:https://gitee.com/eolink_admin/postcat
官方文档:https://docs.postcat.com/?utm_source=al&utm_campaign=xh&utm_content=pd2502
如果你对于 Postcat 有任何疑问或者建议,都可以去 Github 或者 Gitee 找他们,提个Issue,国产开源软件,需要我们的支持!