A-A+

mock简单实用的编程小技巧

2018年08月19日 我爱编程 暂无评论

前后台是否可以并行开发?从而提高整体开发效率。

接口联调总是很花时间,如何提高联调效率?

前台的各种异常场景,是否有办法快速进行模拟?

现网出了问题,如何快速的定位问题原因?

以上是项目开发中常遇到的问题,为此给大家介绍一个简单却又实用的编程小技巧:mock。

mock

什么是mock

mock就是模拟,相对于真的实现来说,它是个假的实现。

mock的实现非常简单,只要添加一个实现类,对比下面两张图,图1是平时我们的实现,图2是mock的实现。

接口实现

mock实现

mock什么

前台负责界面展示,后台负责提供数据,通过网络请求进行数据交互,这就是所谓的前后台分离。IOS、Android等项目天生就是前后台分离;同时越来越多的web项目,为了追求更好的用户体验,也选择了前后台分离的方案。

介绍前后台分离,是为了明确我们的mock目标:后台、网络。

mock的正确使用姿势

接口协议文档

要使用mock,必须要有接口协议文档,一般在设计阶段提供。有了协议文档,mock就可以按照协议文档造对应的数据了。

项目结构

不要把mock数据分散到各个页面,而是抽取到一个文件里来写。如下,request.js是真正的实现,request_mock.js是mock实现。这样的好处是方便后期做做切换,毕竟我们不能用mock数据上线。

模拟网络延迟、超时

settimeout,是的你没听错,就是这么简单。

模拟分页数据

比如一共35条数据,pageSize为10,我们可以先造好35条数据,然后根据pageIndex、pageSize算出对应数据,从数组里返回即可。

mock的好处

还记得一上来我提的4个痛点么,现在我们来看下是否解决了

有了协议文档,前台就知道怎么模拟数据了,也就可以并行开发了。

通过模拟数据充分测试了前台对于数据的处理,联调时只需要切换一个实现类,出现问题时,看下返回数据与接口协议文档是否一致。只要前台测得充分,这时出现的问题基本都是后台问题。

超时有settimeout来模拟,空数据不设对应值,只要改一个文件,就可以快速模拟。

拿到对应请求数据,对比下接口协议文档,或者替换本地mock数据,跑一下很快就能定位到原因,究竟是后台未按协议来,还是对应的数据前台未测试到,一目了然,前后台再也不用为问题原因而扯皮了。

总结

mock的核心思想是面向接口编程,我们不依赖于实现,只需要了解接口,以最小的代价完成一个假实现。网上有很多的mock方案,大多数是通过中间件来实现,个人不建议大家去学习,反而把简单的问题复杂化了。

标签:

给我留言

Copyright © 四季博客 保留所有权利.   Theme  Ality

用户登录