mock - DTD
生成规则
数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值:
'name|rule': value
生成规则是可选的,有 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
tips:
- 生成规则的含义需要依赖属性值的类型才能确定
- 属性值中可以使用占位符,见 DPD 章节
- 属性值还指定了最终值的初始值和类型
数据模板定义
String
'name|min-max': string 通过重复 string 生成字符串,重复次数大于 min 小于 max
'name|count': string 通过重复 string 生成字符串,重复次数等于 count
Number
'name|+1': number 属性值自动加 1,初始值为 number
'name|min-max': number 生成一个大于等于 min, 小于等于 max 的整数,属性值 number 只是用来确定类型
'name|min-max.dmin-dmax': number 生成一个浮点数,整数部分大于等于 min, 小于等于 max, 小数部分保留 dmin 到 dmax 位
'name|digit1.digit2: number 生成一个浮点数,整数部分等于 digit1, 小数部分保留 digit2 位
Boolean
'name|1': boolean 随机生成一个布尔值,结果为 true 和 false 的概率一样
'name|min-max': value 结果为 true 的概率为 min / (min+max), 为 false 的概率为 max / (min+max)
Object
'name|count': object 从属性值 object 中随机选取 count 个属性
'name|min-max': object 从属性值 object 中随机选取 min 到 max 个属性
Array
'name|1': array 从属性值 array 中随机选取 1 个元素,作为最终值
'name|+1': array 从属性值 array 中顺序选取 1 个元素,作为最终值
'name|min-max': array 通过重复属性值 array 生成一个新数组,重复次数大于等于 min, 小于等于 max
'name|count': array 通过重复属性值 array 生成一个新数组,重复次数为 count
Mock.mock({
"array|3": [
{
"name|+1": ["Hello", "Mock.js", "!"],
},
],
});
Mock.mock({
"array|1-3": ["Hello", "Mock.js", "!"],
});{ "array": [{ "name": "Hello" }, { "name": "Mock.js" }, { "name": "!" }] }
{
"array": [
"Hello",
"Mock.js",
"!",
"Hello",
"Mock.js",
"!",
"Hello",
"Mock.js",
"!"
]
}RegExp
'name': regexp 通过正则表达式反向生成匹配字符串