目录
数据模板定义规范
数据定位符定义规范
Mock.mock(rurls?,rtype?,template|function(options))
Mock.setup(settings)
Mock.Random
拓展
数据模板中的每个属性由3个部分组成:属性名、规则、属性值。
'name|rule':value
注意:
1、属性名和规则之间用 | 分割。
2、规则是可选项
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
4、生成规则的含义需要依赖属性值的类型才能确定
5、属性值中可以含有@ 占位符
6、属性值还指定了最终值的初始值和类型
生成规则和实例
1、属性值是字符串 String
'name|min-max':string
通过重复 string 生成一个字符串,重复次数大于min,小于等于max
'name|count':string
通过重复 string 生成一个字符串 重复次数等于count
2、属性值是数字 Number
'number|+1':number
//属性值自动+1,初始值为number
'number|min-max':number
//生成一个大于等于min,小于等于max的整数,属性值numberzhi只能用来确定类型
'number|min-max.dmin-dmax':number
//生成一个浮点数,整数部分大于等于min,小于等于max,小数部分保留dmin到dmax位
3、 属性值是布尔型 Boolean
'name|1':boolean
//随即生成一个布尔值,值为true的概率为1/2,值为false的概率也为1/2
'name|min-max':boolean
//随即生成一个布尔值,值为false的概率为min/(min+max),值为true的概率为max/(min+max)
4、属性值是对象 object
'name|count':object
//从属性值 object 中 随即选取 count 个属性
'name|min-max':object
//从属性值 object 中 随即选取 min-max 个属性
5、属性值是数组 array
'name|1':array
//从属性值 array 中 随即选取一个值作为最终值
'name|+1':array
//从属性值 array 中顺序选取一个值作为最终值
'name|min-max':array
//通过重复属性值 array 生成一个新数组,重复次数大于等于min,小于等于max
'name|count':array
//通过重复属性值 array 生成一个新数组,重复次数等于count
6、属性值是Function
'name':function(){
return ...
}
//执行function,去其返回值作为最终的属性值,函数的上下文为属性name所在的对象
7、属性值是正则
'name': regexp
//根据正则表达式 regexp 反向生成可以匹配它的字符串。用于生成自定义格式的字符串。
占位符只是在属性值字符串中占个位置,并不出现在最终的属性中。
占位符的格式
@占位符
@占位符(参数[,参数])
注意:
1、用 @ 来标识其后的字符串是 占位符
2、占位符引用的是 Mock.Random 中的方法
3、通过 Mock.Random.extend()来拓展自定义定位符
4、占位符可以引用 数据模板 中的属性
5、占位符 会优先引用 数据模板 中的属性
6、占位符 支持 相对路径 和 绝对路径
根据数据模板生成模拟数据。
配置拦截 Ajax 请求时的行为。支持的配置项有:timeout。
Mock.setup({
timeout: 400
})
Mock.setup({
timeout: '200-600'
})
Mock.Random 是一个工具类,用于生成各种随机数据。
Mock.Random 的方法在数据模板中称为『占位符』,书写格式为 @占位符(参数 [, 参数]) 。
Type | Method |
---|---|
Basic | boolean, natural, integer, float, character, string, range, date, time, datetime, now |
Image | image, dataImage |
Color | color |
Text | paragraph, sentence, word, title, cparagraph, csentence, cword, ctitle |
Name | first, last, name, cfirst, clast, cname |
Web | url, domain, email, ip, tld |
Address | area, region |
Helper | capitalize, upper, lower, pick, shuffle |
Miscellaneous | guid, id |
Random.extend({
constellation: function(date) {
var constellations = ['白羊座', '金牛座', '双子座', '巨蟹座', '狮子座', '处女座', '天秤座', '天蝎座', '射手座', '摩羯座', '水瓶座', '双鱼座']
return this.pick(constellations)
}
})
Random.constellation()
// => "水瓶座"
Mock.mock('@CONSTELLATION')
// => "天蝎座"
Mock.mock({
constellation: '@CONSTELLATION'
})
// => { constellation: "射手座" }