简单了解mock基础语法

mock基础语法

  • 数据模块定义规范(DTD)
  • 数据占位符定义规范(DPD)

DTD

  1. 属性名
  2. 生成规则
  3. 属性值

属性名和生成规则用| 分隔。生成规则可选 ,有7中规则

在这里插入图片描述
用法

  • 属性值是字符串’name|min-max’:string 生成重复次数大于min小于max的字符串
  • 属性值是number

(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基础语法_第1张图片

//使用方式 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'] //在数组中随机找一个
    })

简单了解mock基础语法_第2张图片

//发送请求
$.ajax({
    url:'http://test/data',
    dataType:'json',
    data:{},
    success:function(data){
 
    },
    error:function(err) {

    }
  })



//设置请求时间
Mock.setup({
    timeout: 400
})
Mock.setup({
    timeout: '200-600'
})

你可能感兴趣的:(mock基础语法)