Mock的用法規則

Mock的用法規則

屬性值是字符串 String

  • ‘name|min-max’: string
//通過重複 string 生成一個字符串,重複次數大於等於 min,小於等於 max。
var string = Mock.mock({
    'string|1-10':'哈'
})
console.log(JSON.stringify(string))
//結果隨機生成1~10個哈
{"string":"哈哈哈哈"}
  • ‘name|count’: string
//通過重複 string 生成一個字符串,重複次數等於 count。
var string = Mock.mock({
    'string|5':'哈'
})
console.log(JSON.stringify(string))
//結果生成五個哈
{"string":"哈哈哈哈哈"}

屬性值是數字 Number

  • ‘name|+1’: number

屬性值自動加 1,初始值爲 number。

  • ‘name|min-max’: number
//生成一個大於等於 min、小於等於 max 的整數,屬性值 number 只是用來確定類型。
var number = Mock.mock({
    'id|1-10': 1
})
//結果1-10的隨機數
{"id":8}
  • ‘name|min-max.dmin-dmax’: number
//生成一個浮點數,整數部分大於等於 min、小於等於 max,小數部分保留 dmin 到 dmax 位,number 只是用來確定類型。

Mock.mock({
    'number1|1-100.1-10': 1, //生成1-10位的小數
    'number2|123.1-10': 1, //同上
    'number3|123.3': 1, //生成三位小數
    'number4|123.10': 1.123 //生成10位小數
})
// =>
{
    "number1": 12.92,
    "number2": 123.51,
    "number3": 123.777,
    "number4": 123.1231091814
}

屬性值是布爾型 Boolean

  • ‘name|1’: boolean
//隨機生成一個布爾值,值爲 true 的概率是 1/2,值爲 false 的概率同樣是 1/2。
var boolean = Mock.mock({
    'boolean|1':true
})//true和false機率都是1/2
  • ‘name|min-max’: value
//隨機生成一個布爾值,值爲 value 的概率是 min / (min + max),值爲 !value 的概率是 max / (min + max)。
var data2 = Mock.mock({
    'boolean|1-2':true
})//true的概率是1/3,false的概率是2/3

屬性值是對象 Object

  • ‘name|count’: object
//從屬性值 object 中隨機選取 count 個屬性。
var obj = Mock.mock({
    'obj|2':{
        id:1,
        name:'jx',
        age:18,
        address:'JiNan',
        love:'you'
    }
})//隨機在obj裏面挑選倆屬性顯示
//結果
{"obj":{"name":"jx","love":"you"}}
  • ‘name|min-max’: object
//從屬性值 object 中隨機選取 min 到 max 個屬性。
var obj = Mock.mock({
    'obj|1-5':{
        id:1,
        name:'jx',
        age:18,
        address:'JiNan',
        love:'you'
    }
})//隨機在obj裏面挑選1~5個屬性顯示
//結果
{"obj":{"love":"you","id":1,"age":18,"name":"jx"}}

屬性值是數組 Array

  • ‘name|1’: array
//從屬性值 array 中隨機選取 1 個元素,作爲最終值。
var data = Mock.mock({
    'list|5': [1]
})
//結果
{"list":[1,1,1,1,1]}
  • ‘name|+1’: array

從屬性值 array 中順序選取 1 個元素,作爲最終值。

  • ‘name|min-max’: array
//通過重複屬性值 array 生成一個新數組,重複次數大於等於 min,小於等於 max。
var data = Mock.mock({
    'list|1-10': [{
        "id|+1":1
    }]
})//結果隨便輸出1~10個數
//結果
{"list":[{"id":1},{"id":2},{"id":3}]}
  • ‘name|count’: array
//通過重複屬性值 array 生成一個新數組,重複次數爲 count。
var data = Mock.mock({
    'list|3': [{
        "id|+1":1
    }]
})//輸出3個數
//結果
{"list":[{"id":1},{"id":2},{"id":3}]}

屬性值是函數 Function

  • ‘name’: function
//執行函數 function,取其返回值作爲最終的屬性值,函數的上下文爲屬性 'name' 所在的對象。
var data = Mock.mock({
    // 屬性 list 的值是一個數組,其中含有 1 到 10 個元素
    'name': ()=>{
        return 'jia'+'xin'
    }
})
//結果
{"name":"jiaxin"}

屬性值是正則表達式 RegExp

  • ‘name’: regexp
//根據正則表達式 regexp 反向生成可以匹配它的字符串。用於生成自定義格式的字符串。

Mock.mock({
    'regexp1': /[a-z][A-Z][0-9]/,
    'regexp2': /\w\W\s\S\d\D/,
    'regexp3': /\d{5,10}/
})
// =>
{
    "regexp1": "pJ7",
    "regexp2": "F)\fp1G",
    "regexp3": "561659409"
}

Mock.Random

var Random = Mock.Random
Random.email()
// => "[email protected]"
Mock.mock('@email')
// => "[email protected]"
Mock.mock( { email: '@email' } )
// => { email: "[email protected]" }

自定義隨機

Random.extend({
    constellation: function(date) {
        var constellations = ['白羊座', '金牛座', '雙子座', '巨蟹座', '獅子座', '處女座', '天秤座', '天蠍座', '射手座', '摩羯座', '水瓶座', '雙魚座']
        return this.pick(constellations)
    }
})
Random.constellation()
// => "水瓶座"
Mock.mock('@CONSTELLATION')
// => "天蠍座"
Mock.mock({
    constellation: '@CONSTELLATION'
})

mock佔位符

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章