DTD
属性名和生成规则用| 分隔。生成规则可选 ,有7中规则
(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 位。
属性是boolean ‘name|1’:boolean随机生成一个boolean值 true false各占一半
属性值是对象 Object
(1)'name|count’从属性值object 中随机取 count个属性
(2)‘name|min-max’:object从属性值 随机选取min到max个属性
属性值是数组Array
(1)‘name|1’: array
从属性值 array 中随机选取 1 个元素,作为最终值。
(2)‘name|+1’: array
从属性值 array 中顺序选取 1 个元素,作为最终值。
(3)‘name|min-max’: array
通过重复属性值 array 生成一个新数组,重复次数大于等于 min,小于等于 max。
(4)‘name|count’: array
通过重复属性值 array 生成一个新数组,重复次数为 count。
属性值为Function
(1)‘name’: function
执行函数 function,取其返回值作为最终的属性值,函数的上下文为属性 ‘name’ 所在的对象。
属性值为正则表达式RegExp
(1)‘name’: regexp
根据正则表达式 regexp 反向生成可以匹配它的字符串。用于生成自定义格式的字符串。
DPD
占位符 只是在属性值字符串中占个位置,并不出现在最终的属性值中。格式如下:
@占位符
@占位符(参数 [, 参数])
(1)用 @ 来标识其后的字符串是 占位符。
(2)占位符 引用的是 Mock.Random 中的方法。
(3)通过 Mock.Random.extend() 来扩展自定义占位符。
(4)占位符 也可以引用 数据模板 中的属性。
(5)占位符 会优先引用 数据模板 中的属性。
(6)占位符 支持 相对路径 和 绝对路径。
Mock.mock({
name: {
first: '@FIRST',
middle: '@FIRST',
last: '@LAST',
full: '@first @middle @last'
}
})
// =>
{
"name": {
"first": "Charles",
"middle": "Brenda",
"last": "Lopez",
"full": "Charles Brenda Lopez"
}
}
//使用方式 mock相应请求 返回string对象
Mock.mock(
'http://test/data',{
"userName" : '@name', //模拟名称
"age|1-100":100, //模拟年龄(1-100)
"color" : "@color", //模拟色值
"date" : "@date('yyyy-MM-dd')", //模拟时间
"url" : "@url()", //模拟url
"content" : "@cparagraph()" //模拟文本
}
)
//生成一个对象数组 如截图
Mock.mock('http://test/jsonList', {
'list|1-10': [{
'id|+1': 1,
'email': '@EMAIL',
'regexp4': /\d{5,10}/,
'name': '@cname', //随机产生一个中文的姓名
}],
'country|1':['中国','美国','日本'],
'moblie|1':['13531544954','13632250649','15820292420','15999905612'] //在数组中随机找一个
})
//发送请求
$.ajax({
url:'http://test/data',
dataType:'json',
data:{},
success:function(data){
},
error:function(err) {
}
})
//设置请求时间
Mock.setup({
timeout: 400
})
Mock.setup({
timeout: '200-600'
})