EasyMockMaster
方便大家可以在app上使用大搜车的easymock,提供部分接口mock,以及真实数据录制功能
Install / Use
/learn @blackjuly/EasyMockMasterREADME
EasyMockMaster
方便大家可以在app上使用大搜车的easymock,提供部分接口mock,以及真实数据录制功能
示例效果图

本地假数据示例版
为了方便小伙伴快速看到当前类库的一个效果,笔者实现了一个不需要后台的本地mock版本的app,直接安装即可体验效果 local-mock-app.apk
背景
在前端和移动端的开发中,造数据一直是一个非常苦恼的事情,麻烦后端也并不是一个长久之计,为了解决这个问题,在开源环境下产生了大量的mock平台,支持利用moc.js语法随机生成各种mock数据 然而,对于移动端来说,使用这些平台天然有一些弊端要解决:
- url的动态切换,每次运行中利用mock的网络请求要和真实网络请求得能无缝切换,否则就必须得手动将mock地址的URL改回真实的URL
- 部分接口的mock依赖真实的数据接口,即进入这个界面进行调试,必须先把前面的接口全部mock掉
EasyMockMaster解决了什么问题?
- 实质的ui界面,操控url动态切换;方便用户可以在真实url和虚假url之间无缝衔接
- 支持将真实的数据记录下来,重新更新回已有的接口
Required
- 项目中使用了OKHttp做为网络请求框架
- 想尝试使用easymock作为mock工具
- 最好后端的接口文档为swagger,否则使用EasyMock维护接口不是很友好
项目模块
app - EasyMockHelper的Demo用法展示示例app
mockHelper - mockHelper源代码
Get Started
- 根目录的gradle文件
allprojects {
repositories {
//添加jitpack.io
maven { url 'https://jitpack.io' }
}
}
2.添加 EasyMockMaster的依赖
dependencies {
//记得版本号改为最新
implementation 'com.github.blackjuly:EasyMockMaster:0.1.1'
}
3.在你的app的application文件中,初始化
class DemoApplication {
public static String baseIp ="http://ip地址:port/";
public static String userId = "用户名";
public static String password = "密码";
public static String mockDataProjectId = "工程id";
public static String projectBaseUrl = "工程baseUrl";
@Override
public void onCreate() {
//初始化,正式版可以通过if判断控制不初始化
EasyMockHelperApplication.init(
this
,userId
,userId
,baseIp //示例:http://192.168.5.79:7300/
,mockDataProjectId //示例:5ef05742d55d4900203eb5d5
,projectBaseUrl //http://192.168.5.79:7300/mock/5ef05742d55d4900203eb5d5/xxxxdemo
//添加 url的匹配规则,分隔符规则详情看wiki
, new UrlMatcher.SplitterUrlMatcher("xxxxdemo") );//主要就是上面工程url的最后一段
}
}
4.将mock功能添加到你的okhttp的网络模块
import okhttp3.Interceptor;
import okhttp3.OkHttpClient.Builder;
import retrofit2.Retrofit;
public class SomeNetworkClass {
public Retrofit.Builder init(){
Builder clientBuilder = new Builder();
IMockService mockService = new MockServiceImpl();
List<Interceptor> list = mockService.getMockInterceptors();
for (Interceptor interceptor : list) {
clientBuilder.addInterceptor(interceptor);
}
// 构建 Retrofit
return new Retrofit.Builder()
.client(clientBuilder.build())
.baseUrl("www.xxx.com")
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
}
}
5.OK,可以开始享受你的mock生活啦~~
具体mock功能详细使用,请看wiki!
Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
342.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
