美文网首页
Mock语法总结及例子

Mock语法总结及例子

作者: 踏雪_739a | 来源:发表于2022-07-14 11:01 被阅读0次
    Mock.mock({
                "results|10": [
                    {
                        "id|+1": 10,
                        province: {
                            "id|111-999.1": 1112.4,
                            name: "@province",
                        },
                        city: {
                            "id|1111-9999": 1234,
                            name: "@city",
                        },
                        "allow_split|1-2": true,
                        fun1: () => {
                            return [1, 2, 3];
                        },
                        regexp1: /\d{5,10}/,
                        first: "@FIRST",
                        last: "@last",
                        full: "@last @first",
                    },
                ],
            });
    

    一、数据模板定义规范(Data Template Definition,DTD)

    说明:
    name:属性名,生成规则:rule(可选),属性值:value

    格式:'name|rule':value

    生成规则的含义依赖属性值的类型,这里的生成是按规则随机生成。

    1.属性值是字符串String,通过重复 string 生成一个字符串

    1. 'name|min-max':string 重复次数大于等于min,小于等于max。即取值区间为[min,max]
    2. 'name|count':string 重复次数为count

    2.属性值是数字Number

    1. 'name|+1':number 属性值自增1,初始值是number。
    'id|+1':0 
    //id从0开始自增1
    
    
    1. 'name|min-max':number 生成一个整数,取值区间为[min,max]。number只是用来确定类型。
    2. 'name|min-max.dmin-dmax':number
      生成一个浮点数,整数部分取值区间为[min-max],小数部分保留dmin到dmax位。小数点后只有一个数n的话,就保留n位小数。
    Mock.mock({
        'num1|50-100.1-3':1, 
        'num2|100.3':1,
        'num3|60-70.3':1.23
    })
    //=>
    {
        "num1":57.56,//保留1-3位小数
        "num2":100.666//保留三位小数
        "num3": 69.235//从23开始保留3位小数
    }
    
    

    3.属性值是Boolean类型

    1. 'name|1': boolean 随机生成一个布尔值,值为 true 的概率是 1/2,值为 false 的概率同样是 1/2。
    2. 'name|min-max':value 随机生成一个布尔值,值为 value 的概率是 min / (min + max),值为 !value 的概率是 max / (min + max)。

    4.属性值是对象Object

    1. 'name|count':object 从属性值object中随机选取count个属性
    2. 'name|min-max':object
      从属性值object中选取min到max个属性

    5.属性值是数组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。

    6.属性值是函数Function

    1. 'name':function 执行函数 function,取其返回值作为最终的属性值,函数的上下文为属性 ‘name’ 所在的对象。

    7.属性值是正则表达式RegExp

    1. '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"
    }
    
    

    二、数据占位符定义规范 (Data Placeholder Definition,DPD)

    占位符只是在属性值字符串中占个位置,并不出现在最终的属性值中。

    占位符的格式为:
    @占位符 或 @占位符(参数 [, 参数])

    注意:

    1. @ 来标识其后的字符串是 占位符
    2. 占位符 引用的是 Mock.Random 中的方法。
    3. 通过 Mock.Random.extend() 来扩展自定义占位符。
    4. 占位符 会优先引用 数据模板 中的属性。
    5. 占位符 支持 相对路径 和 绝对路径。
    Mock.mock({
        name: {
            first: '@FIRST',
            middle: '@FIRST',
            last: '@LAST',
            full: '@first @middle @last'
        }
    })
    // =>
    {
        "name": {
            "first": "Charles",
            "middle": "Brenda",
            "last": "Lopez",
            "full": "Charles Brenda Lopez"
        }
    }
    
    
    例子链接:http://mockjs.com/examples.html

    该网址特别全面,各种使用方法及扩展,这里不再复述。

    转载:https://blog.csdn.net/aaqingying/article/details/99637670

    相关文章

      网友评论

          本文标题:Mock语法总结及例子

          本文链接:https://www.haomeiwen.com/subject/fobxirtx.html