Mock 语法讲解

简介: Mock 是生成随机数据,拦截 Ajax 请求的 JavaScript 库。本文来介绍下 Mock 的常用语法。

Mock 是生成随机数据,拦截 Ajax 请求的 JavaScript 库。

本文来介绍下 Mock 的常用语法。

模拟数据

生成随机数据

Mock.Random.boolean()

生成一个随机的布尔值。例如:

返回值为 truefalse

Mock.Random.integer(min, max)

生成一个随机的整数,可以指定范围。例如:

返回值为 010 之间的整数。

Mock.Random.float(min, max, dmin, dmax)

生成一个随机的浮点数,可以指定范围和精度。例如:

返回值为 0.00100.00000 之间的浮点数,精度为 25 位小数。

Mock.Random.string(length)

生成一个随机的字符串,可以指定长度。例如:

返回值为长度为 10 的随机字符串。

Mock.Random.date()

生成一个随机的日期。例如:

返回值为随机日期的字符串表示,例如 "1977-07-03"

Mock.Random.time()

生成一个随机的时间。例如:

返回值为随机时间的字符串表示,例如 "05:38:02"

Mock.Random.datetime()

生成一个随机的日期时间。例如:

返回值为随机日期时间的字符串表示,例如 "2007-06-29T22:03:06.140Z"

Mock.Random.image(size, background, foreground, format, text)

生成一个随机的图片,可以指定大小、背景色、前景色、格式和文字。例如:

返回值为图片的 Base64 编码字符串。

生成数据模板指定的数据

Mock.mock(template) 根据数据模板生成模拟数据。数据模版可以生成复杂的数据结构。

数据模版的语法如下:

  • 属性名和属性值之间用 : 分隔。
  • 属性与属性之间用 , 分隔。
  • 属性值是字符串类型,可以使用 @ 来表示占位符。
  • 属性值是对象类型,可以使用 name|rule 来表示生成规则。

示例:

const Mock = require('mockjs')
const data = Mock.mock({
  'list|1-10': [{
    'id|+1': 1, // 从 1 开始,每次加 1
    'name': '@cname', // 随机中文名字
    'age|18-60': 1, // 18 到 60 岁之间的整数
    'gender|1': ['男', '女'], // 男或女
    'email': '@email' // 随机电子邮件地址
  }]
})
console.log(data)

输出:

{
  "list": [
    {
      "id": 1,
      "name": "林志玲",
      "age": 32,
      "gender": "女",
      "email": "kbsc@pmpuaaq.pk"
    },
    {
      "id": 2,
      "name": "周杰伦",
      "age": 55,
      "gender": "男",
      "email": "whq@zjfwq.uz"
    },
    ...
  ]
}

模拟接口

  • Mock.mock(url, template) 根据接口地址和数据模板模拟接口请求。
  • Mock.mock(method, url, template) 根据请求方法、接口地址和数据模板模拟接口请求。

以上是 Mock 中常用的语法,更多语法请查阅官方文档。想进阶成为一位 Mock 高手?Apifox 是一个强大的接口文档管理工具,用 Apifox 可以让 Mock 变得更容易。Apifox 语法完全兼容 Mock, 并扩展了一些 Mock 没有的语法(如国内手机号 @phone)。小伙伴们可以去体验下。

知识扩展:

更多 Mock 相关知识可点击下方链接查看。

相关文章
|
物联网 网络性能优化
IoT平台业务通信Topic设计最佳实践(共享场景为例)
以共享充电宝业务场景为例,讲解业务中topic和payload的规划设计
5924 0
|
6月前
|
JSON 前端开发 Serverless
Mock.js 语法结构全解析
Mock.js 的语法规范介绍,从数据模板定义规范和数据占位符定义规范俩部分介绍, 让你更好的使用 Mock.js 来模拟数据并提高开发效率。
|
11月前
|
存储 Kubernetes 容器
K8S部署nexus
该配置文件定义了Nexus 3的Kubernetes部署,包括PersistentVolumeClaim、Deployment和服务。PVC请求20Gi存储,使用NFS存储类。Deployment配置了一个Nexus 3容器,内存限制为6G,CPU为1000m,并挂载数据卷。Service类型为NodePort,通过30520端口对外提供服务。所有资源位于`nexus`命名空间中。
|
前端开发 Java Linux
性能工具之 Jmeter 通过 SpringBoot 工程启动
【5月更文挑战第22天】性能工具之 Jmeter 通过 SpringBoot 工程启动
377 8
性能工具之 Jmeter 通过 SpringBoot 工程启动
|
XML JSON 测试技术
JMeter 响应断言详解:提升测试精度的利器
**摘要:** Apache JMeter的响应断言用于验证性能和功能测试中的系统响应。常见的断言类型包括文本、JSON、XPath、XML、响应代码和时间断言。配置断言涉及添加采样器、选择断言类型及设定相关参数。最佳实践建议选择合适断言类型、减少断言数量、使用正则表达式,并结合前置和后置处理器。实例演示了如何配置文本、JSON和响应代码断言来验证登录接口的成功响应。响应断言确保了测试的准确性与效率。
|
前端开发 Java 测试技术
IDEA 版 API 接口神器来了,一键生成文档,贼香!
IDEA 版 API 接口神器来了,一键生成文档,贼香!
1322 0
调试实战——使用windbg调试DLL卸载时的死锁
dll 卸载时死锁了,不怕,windbg 来解决
阿萨学工具: Apifox 的自定义智能Mock功能
阿萨学工具: Apifox 的自定义智能Mock功能
603 0
|
前端开发
阿萨学工具:Apifox的高级Mock 功能
阿萨学工具:Apifox的高级Mock 功能
530 0