在做项目中很多时候都要自己手动添加假数据来做测试使用,目前都是直接写到代码里面,等测试后在手动删除,一个是这样不安全,二是数据分散十分不方便,而且也确实在真实项目上线中被坑到(确实是很容易忘记呢),那么有什么好的方法能够不污染代码就能拿到假数据呢?通过网络上查阅相关文章大致有以下几种:
1.直接写到代码里(这是目前用的,污染最严重,最不安全的)
2.添加条件宏编译只在DEBUG添加下才使用(不过这种还是比较污染的)
3.利用单元测试的网络请求stub做假数据(可以使用OHHTTPStubs)
4.动态注入数据,现在比较流行的是 injectionforxcode和dyci-main两个库(这个我没试过,不过看了相关文章说是不好用)
5.自己搭建一个本地服务器还做测试,不过这个门槛搞来一些,不过感兴趣的还是可以搞一搞。
6.使用网络代理软件来拦截请求替换为本地文件(这边用到的就是大家常用的抓包工具Charles)。
现在就重点来说说第六种方法的实现,而且是最没污染的方式,以后项目中也会按这种方式进行,以保证不污染代码,避免不必要的bug事件。
这是使用的是Charles的 Map Local功能如图:
打开以后添加网络请求的host、path或者是完整的URL都行,在LocalPath一栏里添加本地JSON文件做测试数据,然后记得勾选Enable MapLocal。
这样简单设置以后就能发现请求接口返回的数据都是你本地的测试数据了。每次只要改本地json文件数据,请求以后就立马更新,爽到不行啊。不过这里可能还要介绍一下如何是用Charles获取https的请求数据。我单独写一篇博文吧。over~