通过Mock API 提高 APP 开发效率

sahuan 2018-04-04 01:46:26
APP 开发过程中,如果可以在客户端的正常项目代码中,自然地(不影响最终 apk)添加
一种模拟服务器数据返回的功能,这样就可以很方便的在不依赖服务器的情况下展开客户
端的开发。
Mock API 提供了这一问题的解决方案,通过事先定义好的接数据生成规则,让 APP 功能能
够快速测试,便于前后端开发同时进行。

一,什么是 Mock?

在软件测试领域,Mock 的意思是模拟,简单来说,就是通过某种技术手段模拟测试对象的
行为,返回预先设计的结果。

二,Mock 有什么用?

首先,Mock 可以用来解除测试对象对外部服务的依赖(比如数据库,第三方接口等),使
得测试用例可以独立运行。
不管是传统的单体应用,还是现在流行的微服务,这点都特别重要,因为任何外部依赖的
存在都会极大的限制测试用例的可迁移性和稳定性。通过 Mock 去除外部依赖之后,不管
是测试用例的可迁移性还是稳定性,都能够上一个台阶。

三,如何创建 Mock API 服务?

针对不同的测试场景,可以选择不同的 Mock 框架和工具。

1.Mockito
国外知名的基于对象层的单元测试框架,通过 MockIto,可以编写大量的项目测试配置来
实现全面的项目测试服务。但是其功能过于庞杂,不一定适用于所有的项目。

2.WireMock
同样是国外接口测试领域的知名工具。和处在对象层的 Mockito 不同,WireMock 针对的是
API 的 Mock 测试工具,如果说 Mocketo 是单元测试的瑞士军刀,可以 Mock Everything,那
么 WireMock 就是专为小型项目而生的,支持 HTTP 响应存根、请求验证、代理/拦截、记
录和回放。但是仍然需要编写大量的 Mock API 规则,无法自动生成数据,在易用性上稍有
不足。

3.eoLinker
eoLinker 是目前国内最大的在线接口管理平台,不仅拥有非常全面的接口管理功能,并且
可以通过 UI 界面来设定 Mock 的规则,支持 Mock JS 和原生 js 的函数方法,简化 Mock API
的编写操作。
值得注意的是,eoLinker 是一个在线的 SaaS 服务,用户无需任何部署,只需要写明 Mock
的规则,就可以通过 eoLinker 提供的 URL 来访问 Mock 服务,从使用门槛上来说是最低
的,推荐使用。


(eoLinker mock 规则以及测试页面)
其他类似的 Mock API 的框架还有 OkHttp 的 mockwebserver,moco 和 mockserver。
mockwebserver 也属于嵌入式 Mock 框架的范畴,但功能过于简单。moco,mockserver 虽
然功能完善,但需要独立部署,和以上产品相比不具有明显优势。
小结:自上世纪末 Kent Beck 提出 TDD(Test-Driven Development)开发理念以来,开发和测试
的边界变的越来越模糊,从原本上下游的依赖关系,逐步演变成你中有我、我中有你的互
赖关系,Mock API 的出现让这种依赖关系在测试中暂时分开,让开发更高效。
...全文
767 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sahuan 2018-04-04
  • 打赏
  • 举报
回复
引用 1 楼 z979451341 的回复:
这还是需要会些后台知识才行啊
也不必太多,比较基础的
键盘舞者113 2018-04-04
  • 打赏
  • 举报
回复
这还是需要会些后台知识才行啊

790

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 其他移动相关
社区管理员
  • 移动开发其他问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧