持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情
大家好,我是阿萨。今天我们学习高级Mock的自定义脚本功能。学习完前面的内容后, 我们还有一类场景使用前面的Mock 方法无法实现. 那就是:
根据传入的参数值不同返回不同的数据列表。比如根据传入的参数确定分页指定页面数据。
今天会介绍这类场景的具体脚本实现方法。
解决以上问题之前,我们先学习下APifox 给我们提供的方法以及属性有哪些。
请求:fox.mockRequest
- fox.mockRequest.headers 请求的 HTTP 头
- fox.mockRequest.cookies 请求带的 Cookies
- fox.mockRequest.getParam(key: string) 获取请求参数,包括 Path 参数、Body 参数、Query 参数。
响应:fox.mockResponse
- fox.mockResponse.headers 响应的 HTTP 头
- fox.mockResponse.code 系统自动生成的的 HTTP 状态码
- fox.mockResponse.json() 系统自动生成的 JSON 格式响应数据
- fox.mockResponse.setBody(body: any) 设置接口返回 Body,参数支持 JSON 或字符串
- fox.mockResponse.setCode(code: number) 设置接口返回的 HTTP 状态码
- fox.mockResponse.setDelay(duration: number) 设置 Mock 响应延时,单位为毫秒
了解了它提供的基本的 方法和属性之后,我们来看下如何解决分页指定页面场景。
- 先在昨天的接口基础上,增加一个param, 就是page。默认值先写上3.
\
- 修改文档,修改接口的响应部分。
\
3. 点击【高级Mock】----【脚本】
- 打开【是否开启】
- 复制右边示例里的代码,粘贴到左边。\
\
示例代码:\
// 获取自动 Mock 出来的数据var responseJson = fox.mockResponse.json();// 修改 responseJson 里的分页数据// 将 page 设置为请求参数的 pageresponseJson.page = fox.mockRequest.getParam('page');// 将 total 设置 120responseJson.total = 120;// 将修改后的 json 写入 fox.mockResponsefox.mockResponse.setBody(responseJson);
- 【保存】 然后点【快捷请求】, 查看对应结果。
结果就是我们 传入的参数 page 为3的值啦。
目标达成。
到此为止,所有Apifox 提供的Mock 方法都实现了。
你学会了吗?
如果你喜欢今天的文章,欢迎点赞,关注。