Mock数据模板规范详解
数据模板定义规范DTD
数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值
属性名 和 生成规则 之间用竖线 | 分隔。
生成规则 是可选的。
生成规则 有 7 种格式:
'name|min-max': value
最小和最大 -->数字 min-max
--》字符串 最多产生多少次
'name|count': value
'name|min-max.dmin-dmax': value
1-10.1-3
8.2
'name|min-max.dcount': value
规则对于字符串就是|min-max规则。
对于数值,是生成一个浮点数,浮点数的整数部分是min-max,小数的位数是dcount。
'name|count.dmin-dmax': value --生成一个浮点数,整数部分的值是count,小数的位数是dmin-dmax位,规则对于字符串就是|count规则
'name|count.dcount': value
'name|+step': value id
生成规则的含义需要依赖属性值的类型才能确定。
属性值 中可以含有 @占位符。
属性值 还指定了最终值的初始值和类型
1 属性值是字符串
(1)‘name|count’: string
通过重复 string 生成一个字符串,重复次数等于 count
// 使用 Mock
let Mock = require('mockjs')
let data = Mock.mock({
'list|5': [{
'id': 1,
'name':'测试',
'phone|11':'1'
}]
})
// 输出结果
console.log(JSON.stringify(data,null,2))
(2)‘name|min-max’: string
通过重复 string 生成一个字符串,重复次数大于等于 min,小于等于 max
// 使用 Mock
let Mock = require('mockjs')
let data = Mock.mock({
'list|5': [{
'id': 1,
'name|2‐4':'测试',
'phone|11':'1'
}]
})
// 输出结果
console.log(JSON.stringify(data,null,2))
2 属性值是number
(1)‘name|+1’: number
属性值自动加 1,初始值为 number。
(2)‘name|min-max’: number
生成一个大于等于 min、小于等于 max 的整数,属性值 number 只是用来确定类型
(3)‘name|min-max.dcount’: value 生成一个浮点数,整数部分大于等于 min、小
于等于 max,小数部分为dcount位
(4)‘name|min-max.dmin-dmax’: number money|3000-8000.2-5
生成一个浮点数,整数部分大于等于 min、小于等于 max,小数部分保留 dmin 到
dmax 位。
3 属性值是布尔
(1)‘name|1’: boolean
随机生成一个布尔值,值为 true 的概率是 1/2,值为 false 的概率同样是 1/2
(2)‘name|min-max’: value
随机生成一个布尔值,值为 value 的概率是 min / (min + max) 1/4
4 属性值是Object
(1)‘name|count’: object
从属性值 object 中随机选取 count 个属性。
(2)‘name|min-max’: object
从属性值 object 中随机选取 min 到 max 个属性
5 属性值是数组
(1)‘name|count’: array
通过重复属性值 array 生成一个新数组,重复次数为 count
(2)‘name|min-max’: array
通过重复属性值 array 生成一个新数组,重复次数大于等于 min,小于等于 max。
数据占位符定义规范DPD
1 基本方法
可以生成随机的基本数据类型
string 字符串
integer 整数
date 日期
2 图像方法
image 随机生成图片地址
3 文本方法
@title: 标题
@cword(100) :文本内容 参数为字数
4 名称方法
cname :中文名称
cfirst:中文姓氏
Last:英文姓氏
5 网络方法
可以生成url ip email等网络相关信息
6 地址方法
@region 区域
@county 省市县