ShenLib简介
在日常开发中我们难免会遇到以下这几种情况:
1.Android前台代码开发完成了,可是后台还没有封装好可以调试的数据或接口
2.即使第1步中后台封装完成了可测试的数据,但是Android前台想完成边界测试,如一数据有很多文字时,前台显示是否合理,数据异常时界面如何显示等许许多多情况的测试,这时我们总想要求后台给配置一些特殊情景的数据,可这时后台开发人员正在开发其他任务,他们根本不想搭理你的,也不想费劲帮你搞那些异常数据,而对这种情况,我们Android前台开发人员是否可完成自己来搞呢?答案是肯定的!
3.在项目开发中我们一般会有一个内网开发环境,一个外网的环境,还有一个正式上线的环境,此外,对于Android开发人员来说最好有一个不依赖于后台的自测环境!面对不同的开发环境,需要配置不同的参数,如ip地址或域名!对于这个问题,我们Android开发人员需要对不同的环境进行不同的参数配置,来切换到不同的开发环境中,如何可以避免不同的环境下,我们需要每次手动修改配置参数以及如何可以快速的切换到不同环境的进行开发呢?
4.对于测试人员及开发人员开说,最好能在同一台手机上安装不同环境版本apk来方便我们验证不同环境下的问题,避免不停的进行客户端的安装替换!经常在我正在开发的得劲时,有人喊到“帮忙打一个什么环境的apk”,而这时你可能恰好不是他所要的环境,这时你可能就需要到程序中一个个的修改程序的配置参数!这是多么麻烦低效的事啊!
争对这几个问题,我用AndroidStudio进行相关的脚本及代码逻辑的编写来提出解决方案,可能我给出的方法并不一定是最好的方法,但其总归是一种解决方法,希望每位读者看完或多或少有点收获。
1.本地MockServer模仿后台进行数据封装
由于项目中网络框架采用的是Retrofit + Okhttp3所以增加了本地MockServer的拦截器来模仿后台返回数据,MockServerInterceptor拦截器的代码逻辑如下:
|
|
有了拦截器后,我们需要把拦截器加入到网络请求的请求链中,使其生效,其具体代码如下:
|
|
实例
1.定义请求的接口
|
|
在这个请求接口是,主要意思是向地址ServerUrl+shenjianli/test发送一个网络Get请求,传入的参数有id!
2.编写本地MockService
|
|
主要是继承MockService类并实现一个返回Json字符串的方法,其中生成的json字符串需要与第一步中类Test相对应,这样才能正确的向返回的Test对象赋值!
3.关联请求与MockService
|
|
在项目中App模块下的res/xml/url.xml文件中增加如上的结点,其中Key与第一步的请求地址相同,MockClass代表的是Key所对应的MockService对应的类所在的路径。
4.进行调用请求使用MockService
|
|