加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长资讯 > 评论 > 正文

用大白话告诉你什么是Mock测试

发布时间:2021-04-06 10:27:01 所属栏目:评论 来源:互联网
导读:往上依次解释一下: (1)方法级别 mock:mock 的对象是一个函数调用,例如获取系统环境变量。 (2)类级别 mock:mock 的对象是一个类,例如一个 HTTP server。 (3)接口级别 mock:mock 的对象是一个 API 接口。 (4)服务级别 mock:mock 的对象是整个服务。比如

往上依次解释一下:

  • (1)方法级别 mock:mock 的对象是一个函数调用,例如获取系统环境变量。
  • (2)类级别 mock:mock 的对象是一个类,例如一个 HTTP server。
  • (3)接口级别 mock:mock 的对象是一个 API 接口。
  • (4)服务级别 mock:mock 的对象是整个服务。比如前端工程师自测试时,可以讲后端整个服务都 mock 掉,这其实等同于将后端的所有接口都 mock。

接口mock注入的五种方式

在使用 mock 进行接口测试时,一般要做两件事情,即打桩和调桩。

其实打桩就是创建mock 桩,指定 API 请求内容及其映射的 mock 响应内容;所谓调桩就是被测服务来请求 mock 桩并接收 mock 响应。

事实上,在打桩和调桩之间还隐藏着一件不显山露水、但是及其重要的事情,那就是 mock 桩的注入(mock injection)。

什么是 mock 注入?

mock 的本质就是用模拟桩来替换真实的依赖。所谓 mock 桩注入就是阻断被测服务与真实服务之间的链路,建立被测服务与 mock 之间的链路过程。何注入 mock?

总的来说 mock 桩的注入方式与架构、被测服务的架构等因素相关,在实际中常见的 mock 桩注入方式包括但不限于以下五种。

(1)API 请求构造

在 mock 接口中被测服务是 API 的请求方,即客户端;依赖服务是 API 的响应方,即服务端。根据 mock 工作的位置,mock 可以分为客户端 mock 和服务端 mock。

客户端 mock:mock 在被测服务内部工作,直接拦截被测服务的 API 请求方法(比如 HTTP Client方法),在被测服务调用 API 请求方法时,直接从方法内部返回预定义的 mock 响应。

服务端 mock:mock 在被测服务外部工作,作为 HTTP 服务器接收被测服务发送的 API 请求,并返回预定义的 mock 响应。

客户端 mock 的注入其实就是改造被测服务的 API 请求方法,即在 API 请求方法中加入 mock 处理逻辑。当满足某些条件时执行 mock 分支,不满足时执行真实分支。

可以通过两种方式实现,一种是直接改造源代码,另一种是利用字节码增强技术对字节码进行改造(Java 语言)。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读