250 - 《Mock 方案调研》
发布于 2023年1月28日
上午调研了 mock 方案,主要是 MSW,在此整理下笔记和一些思考。
1、什么时候需要用到 mock 方案?1)开发,此时用 mock 数据可无需等待后端 API 开发完成,前后端开发并行实施,可以提升项目进度,2)调试,让后端准备各种场景的 API 数据是困难的,做过业务的都懂,尤其是当涉及多个系统时,mock 可以轻松完成各种场景的准备,之前参加双 12 项目,做过一个组件是有 20+ 场景组合的,3)试验,如果有新的 API 设计思路,可以用 mock 方案快速验证,4)DEMO,和 2 类似,准备不同场景的数据,提供 DEMO 给上下游使用。
2、mock 方案的实现有哪些不同方式?大体有三种,1)mock server,2)monkey patch native 模块,3)service worker。mock server 就是提供专门的 server(也可以是中间件),通过网络的方式访问,缺点是,1)和生产服务器有差异,2)额外的维护成本(比如启动 server),3)开发时需要修改代码指向 Mock 服务器。monkey patch native 模块指通过修改 fetch、xmlhttprequest、http 和 https(node)模块实现 mock,缺点是,1)修改原生模块是危险的,可能有坑,2)也会导致和生产环境的差异,3)不能在 Devtools 的网络面板中看到请求信息。
3、社区流行的 mock 方案有 Nock、JSON Server、MirageJS、Service Mocker 和 MSW。Nock 专门为 Node 设计,不支持 Browser 环境,实现是