第十一章 Mock.js 数据生成器

11.1 解决什么问题

问题:
前后端分离项目,前端和后端人员都是根据 API 文档进行开发项目的,不应该直接相互依赖, 前端人员不应该等待后端开发好接口后再进行测试,既然不依赖后端接口,那前端人员应该如何测试呢?
解决:
可以通过模拟数据生成器,通过一定规则 (API文档)生成模拟数据接口, 提供给前端人员进行测试。

11.2 什么是 Mock.js

  • 官网:http://mockjs.com/

  • 文档:https://github.com/nuysoft/Mock/wiki

  • Mock.js 是用于生成随机数据,拦截 Ajax 请求
    通过拦截 Ajax 请求,根据数据模板生成并返回模拟数据,让前端攻城师独立于后端进行开发,帮助编写单元测试

  • Mock.js 作用

    1. 前后端分离
    2. 增加单元测试的真实性
    3. 开发无侵入
    4. 用法简单
    5. 数据类型丰富
    6. 方便扩展

11.3 安装 Mock.js

在命令提示符窗口,用 npm 安装 mockjs
在这里插入图片描述

11.4 入门案例与语法规范

11.4.1 入门案例

需求:生成 4 条列表数据
效果如下
在这里插入图片描述编码实现:

  1. 新建 StudentProject\VueProject\mockjs-demo 目录,通过命令提示符窗口进入到该文件夹,执行下面命令进行初始化项目
    在这里插入图片描述
  2. Mock.js 安装
    在这里插入图片描述
  3. 新建 demo1.js 代码如下
    在这里插入图片描述
    查看效果,执行命令
    在这里插入图片描述在这里插入图片描述

11.4.2 语法规则

Mock.js 的语法规范包括两部分

  1. 数据模板定义规范(Data Template Definition,DTD)
  2. 数据占位符定义规范(Data Placeholder Definition,DPD)

11.5. 数据模板定义规范 DTD

数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值:
在这里插入图片描述注意:

  • 属性名 和 生成规则 之间用竖线 | 分隔
  • 生成规则 是可选的,生成规则 有 7 种格式
  • ‘name|min-max’: value
  • ‘name|count’: value
  • ‘name|min-max.dmin-dmax’: value
  • ‘name|min-max.dcount’: value
  • ‘name|count.dmin-dmax’: value
  • ‘name|count.dcount’: value
  • ‘name|+step’: value
  • 生成规则 的 含义 需要依赖 属性值的类型 才能确定
  • 属性值 中可以含有 @占位符
  • 属性值 指定了最终值的初始值和类型

11.5.1 属性值是字符串 String

  1. ‘name|count’: string
    通过重复 string 生成一个字符串,重复次数等于 count

  2. ‘name|min-max’: string
    通过重复 string 生成一个字符串,重复次数大于等于 min ,小于等于 max

    代码:
    在这里插入图片描述
    效果:
    在这里插入图片描述

11.5.2 属性值是数字 Number

  1. ‘name|+1’: number
    属性值自动加 1,初始值为 number
  2. ‘name|min-max’: number
    生成一个大于等于 min 、小于等于 max 的整数,属性值 number 只是用来确定类型
  3. ‘name|min-max.dmin-dmax’: number
    生成一个浮点数,整数部分大于等于 min 、小于等于 max ,小数部分保留 dmin 到 dmax 位
    代码:
    在这里插入图片描述
    效果:
    在这里插入图片描述

11.5.3 属性值是布尔型 Boolean

  1. ‘name|1’: boolean
    随机生成一个布尔值,值为 true 的概率是 1/2,值为 false 的概率同样是 1/2
  2. ‘name|min-max’: value
    随机生成一个布尔值,值为 value 的概率是 min / (min + max) ,值为 !value 的概率是 max / (min + max)
    代码:在这里插入图片描述
    效果:
    在这里插入图片描述

11.5.4 属性值是对象 Object

  1. ‘name|count’: object
    从属性值 object 中随机选取 count 个属性
  2. ‘name|min-max’: object
    从属性值 object 中随机选取 min 到 max 个属性
    代码:
    在这里插入图片描述效果:
    在这里插入图片描述

11.5.5 属性值是数组 Array

  1. ‘name|min-max’: array
    通过重复属性值 array 生成一个新数组,重复次数大于等于 min ,小于等于 max
  2. ‘name|count’: array
    通过重复属性值 array 生成一个新数组,重复次数为 count
    代码:
    在这里插入图片描述效果:
    在这里插入图片描述

11.5.6 值是正则表达式 RegExp

  1. ‘name’: regexp
    根据正则表达式 regexp 反向生成可以匹配它的字符串。用于生成自定义格式的字符串
    注意 regexp 是没有引号的
    代码:
    在这里插入图片描述效果:
    在这里插入图片描述

11.6. 数据占位符定义规范 DPD

Mock.Random 是一个工具类,用于生成各种随机数据
Mock.Random 类中的方法在数据模板中称为『占位符』,书写格式为 @占位符(参数 [, 参数])
占位符 的格式为:
在这里插入图片描述
Mock.Random 类中提供的完整方法(占位符)如下:

Type(类型)Method(占位符)
Basicboolean , natural (自然数,大于等于 0 的整数), integer , float , character , string , range (整型数组),
Datedate (年月日), time (时分秒), datetime (年月日时分秒)
Imageimage, dataImage
Colorcolor
Textparagraph, sentence, word, title, cparagraph, csentence, cword, ctitle
Namefirst, last, name, cfirst, clast, cname
Weburl, domain, email, ip, tld
Addressarea, region
Helpercapitalize, upper, lower, pick, shuffle
Miscellaneousguid, id

11.6.1 基本类型占位符

  1. 随机生成基本数据类型的数据
    常用的占位符:natural/integer/string/float/boolean
    代码:在这里插入图片描述效果:
    在这里插入图片描述

11.6.2 日期占位符

  1. 随机生成日期类型的数据
    占位符:date/date(format)
                time/time(format)
                datetime/datetime(format)
    代码:
    在这里插入图片描述效果:
    在这里插入图片描述

11.6.3 图像占位符

  1. 随机生成图片地址, 生成的浏览器可以打开
    占位符: image
    代码:
    在这里插入图片描述效果:
    在这里插入图片描述

11.6.4 文本占位符

  1. 随机生成一段文本
    占位符:
    ctitle 随机生成一句中文标题
    csentence(mix?, max?) 随机生成一段中文文本
    代码:
    在这里插入图片描述效果:
    在这里插入图片描述

11.6.5 名称占位符

  1. 随机生成名称
    占位符:
    first 英文名
    last 英文姓
    name 英文姓名
    cfirst 中文名
    clast 中文姓
    cname 中文姓名
    代码:
    在这里插入图片描述效果:
    在这里插入图片描述

11.6.6 网络占位符

  1. 可随机生成 URL 、域名、 IP 地址、邮件地址
    占位符:
    url(protocol?, host?) 生成 URL
            protocol: 协议, 如 http
            host:域名和端口号,如 baidu.com
    domain 生成域名
    ip 生成 IP 地址
    email 生成邮件地址
    代码:
    在这里插入图片描述效果:
    在这里插入图片描述

11.6.7 地址占位符

  1. 随机生成区域、省市县、邮政编码
    占位符:
    region 区域。如: 华南
    county(true) 省市县
    zip 邮政编码
    代码:
    在这里插入图片描述在这里插入图片描述
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值