在需要模拟数据的module中添加依赖:(也可移步 Github源码地址)

dependencies {

implementation 'com.android.util:apimock:1.0.1'

}

注意: 项目需要引入以下库(版本号可不一致):

implementation 'com.squareup.retrofit2:retrofit:2.3.0'

implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'

implementation "io.reactivex.rxjava2:rxjava:2.1.14"

implementation 'com.squareup.retrofit2:converter-gson:2.3.0'

implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'

在Application的onCreate方法中初始化,方法如下:

ApiMock.init(this, "mockdata.json");

或者

ApiMock.init(this, "mockdata.json","http://10.181.52.38:8081/html/mockdata.json");

/**

* 初始化mock数据源

* @param context

* @param fileName assets文件夹下文件名称

* @param mockDataUrl 远程mockdata文件地址(不填或者为空则默认从本地assets获取)

*/

public static void init(Context context, String fileName, String mockDataUrl)

其中的mockdata.json文件是定义在assets文件夹下的mock数据, 第三个参数mockDataUrl是模拟数据存放的远程地址(比如存放在远程或者本地服务器中),不填或者为空则默认从本地assets获取。

模拟数据文件mockdata.json格式如下(字段名称可根据需要修改):(此处的common/getversion 是指对应Retrofit中注解的api的path部分)

{

"common/getversion": {

"code": 200,

"message": "测试一下",

"data": {

"version": "5.2.0",

"url": "http://test.com/test.apk",

"description": "1. 全新UI体验\r\n2. 优化性能,修复已知问题",

"forceUpdate": false

}

}

}

在项目中使用apimock去模拟需要的数据

ApiMock.getApiService(Constants.BASE_URL, ApiService.class)

.getversion()

.subscribe(new Consumer>() {

@Override

public void accept(BaseResponse versinfon) throws Exception {

Toast.makeText(MainActivity.this, versinfon.data.toString(),

Toast.LENGTH_SHORT).show();

}

}, new Consumer() {

@Override

public void accept(Throwable throwable) throws Exception {

Toast.makeText(MainActivity.this, "onFailure:"+throwable.getLocalizedMessage(), Toast.LENGTH_SHORT).show();

}

});

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐