MOCK
- 數(shù)據(jù)模塊定義規(guī)范(DTD)
- 數(shù)據(jù)占位符定義規(guī)范(DPD)
DTD
- 屬性名
- 生成規(guī)則
- 屬性值
屬性名和生成規(guī)則用| 分隔。生成規(guī)則可選 ,有7中規(guī)則
1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|
name|min-max | name|count | name|min-max.dmin-dmax | name|min-max.dcount | name|count.dmin-dmax | name|count.dcount | name|+step |
用法
屬性值是字符串'name|min-max':string 生成重復(fù)次數(shù)大于min小于max的字符串
-
屬性值是number
- 'name+1':number屬性值自動(dòng)加1 初始值為number
- 'name|min-max':number 生成>=min <= max的整數(shù) number為類型
- 'name|min-max.dmin-dmax': number 生成一個(gè)浮點(diǎn)數(shù)牧挣,整數(shù)部分大于等于 min淡诗、小于等于 max,小數(shù)部分保留 dmin 到 dmax 位窘奏。
屬性是boolean 'name|1':boolean隨機(jī)生成一個(gè)boolean值 true false各占一半
屬性值是對象 Object
- 'name|count'從屬性值object 中隨機(jī)取 count個(gè)屬性
- 'name|min-max':object從屬性值 隨機(jī)選取min到max個(gè)屬性
- 屬性值是數(shù)組Array
- 'name|1': array
從屬性值 array 中隨機(jī)選取 1 個(gè)元素,作為最終值。 - 'name|+1': array
從屬性值 array 中順序選取 1 個(gè)元素膨更,作為最終值。 - 'name|min-max': array
通過重復(fù)屬性值 array 生成一個(gè)新數(shù)組缴允,重復(fù)次數(shù)大于等于 min荚守,小于等于 max珍德。 - 'name|count': array
通過重復(fù)屬性值 array 生成一個(gè)新數(shù)組,重復(fù)次數(shù)為 count矗漾。
- 'name|1': array
- 屬性值為Function
1.'name': function
執(zhí)行函數(shù) function锈候,取其返回值作為最終的屬性值,函數(shù)的上下文為屬性 'name' 所在的對象敞贡。 - 屬性值為正則表達(dá)式RegExp
1.'name': regexp
根據(jù)正則表達(dá)式 regexp 反向生成可以匹配它的字符串泵琳。用于生成自定義格式的字符串。
DPD
占位符 只是在屬性值字符串中占個(gè)位置誊役,并不出現(xiàn)在最終的屬性值中获列。格式如下:
@占位符
@占位符(參數(shù) [, 參數(shù)])
- 用 @ 來標(biāo)識(shí)其后的字符串是 占位符。
- 占位符 引用的是 Mock.Random 中的方法蛔垢。
- 通過 Mock.Random.extend() 來擴(kuò)展自定義占位符击孩。
- 占位符 也可以引用 數(shù)據(jù)模板 中的屬性。
- 占位符 會(huì)優(yōu)先引用 數(shù)據(jù)模板 中的屬性鹏漆。
- 占位符 支持 相對路徑 和 絕對路徑巩梢。
Mock.mock({
name: {
first: '@FIRST',
middle: '@FIRST',
last: '@LAST',
full: '@first @middle @last'
}
})
// =>
{
"name": {
"first": "Charles",
"middle": "Brenda",
"last": "Lopez",
"full": "Charles Brenda Lopez"
}
}
占位符
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 | capitalize, upper, lower, pick, shuffle |
Miscellaneous | guid, id |
//使用方式 mock相應(yīng)請求 返回string對象
Mock.mock(
'http://test/data',{
"userName" : '@name', //模擬名稱
"age|1-100":100, //模擬年齡(1-100)
"color" : "@color", //模擬色值
"date" : "@date('yyyy-MM-dd')", //模擬時(shí)間
"url" : "@url()", //模擬url
"content" : "@cparagraph()" //模擬文本
}
)
//生成一個(gè)對象數(shù)組 如截圖
Mock.mock('http://test/jsonList', {
'list|1-10': [{
'id|+1': 1,
'email': '@EMAIL',
'regexp4': /\d{5,10}/,
'name': '@cname', //隨機(jī)產(chǎn)生一個(gè)中文的姓名
}],
'country|1':['中國','美國','日本'],
'moblie|1':['13531544954','13632250649','15820292420','15999905612'] //在數(shù)組中隨機(jī)找一個(gè)
})
data.png
//發(fā)送請求
$.ajax({
url:'http://test/data',
dataType:'json',
data:{},
success:function(data){
},
error:function(err) {
}
})
//設(shè)置請求時(shí)間
Mock.setup({
timeout: 400
})
Mock.setup({
timeout: '200-600'
})