Mock 能做什么?1.API 没开发好,使用 Mock 快速对接在产品经理发布需求后,前后端同学先根据功能需求出一份 API 文档,然后再按照 API 文档并行开发。
不依赖后端提供数据的情况下,如何让前端独立于后端进行开发呢?
使用 Mock,你可以在开发环境代码内置 Mock,拦截请求,模拟真实 API 返回。如果公司使用了接口管理平台,文档发布的时候可以还通过平台生成 Mock API 直接对接。
2.为测试提供数据使用Mock 假数据替代我们想控制但控制困难的部分
例如
某些 API 依赖其他 API 的返回值,使用 Mock 方便的对返回值进行改变,测试不同场景下 API 的表现。某个 API 特别慢,可以暂时用 Mock 代替它,快速调通整个场景测试流程。3.方便快速建立功能原型敏捷开发过程中,调整需求是很常见的。通过 Mock 可以快速建立功能原型,直观的看到业务逻辑,方便产品调整需求,还可以使用假数据对系统进行演示。
Mock 部署记录以下三种方案,各有千秋。
1.将 Mock 写到代码变量中,哪里需要写哪里例如
优点
成本低,使用简单,只需要学习 Mock.js 模板语法。不受网络影响。改动 Mock 能够快速看到效果。缺点
Mock 代码与业务代码耦合高,上线容易遗漏测试代码,为代码偷偷埋下一颗地雷。无法快速响应文档改动,保持 Mock 返回数据与文档一致。只有前端开发人员能用到 Mock,无法与其他部门人员协同工作。没有 API 请求,不够真实。2. Mock.js 拦截请求使用 Mock.mock 函数拦截请求
var data = Mock.mock("https://www.baidu.com", { "string|1-10": "★", //随机生成 1-10 个字符串"★"})var request = new XMLHttpRequest();request.open("GET", "https://www.baidu.com", true);request.send();request.onreadystatechange = function () { if (request.readyState === 4 && request.status === 200) { console.log(request.responseText) }}控制台输出
...