mock语法

mock使用方法

Mock.mock( rurl?, rtype?, template|function( options ) )
rurl(可选):表示需要拦截的 URL,可以是 URL 字符串或 URL 正则。例如/\/domain\/list\.json/'/domian/list.json'
rtype(可选):表示需要拦截的 Ajax 请求类型。例如 GET、POST、PUT、DELETE等。
template(可选):表示数据模板,可以是对象或字符串。例如{ 'data|1-10':[{}] }、'@EMAIL'。
function(options)(可选):表示用于生成响应数据的函数。

mock语法规范(template)

数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值:

// 属性名   name
// 生成规则 rule
// 属性值   value
'name|rule': value(有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

1. 属性值是字符串 String

  • 'name|min-max': string:通过重复 string 生成一个字符串,重复次数大于等于 min,小于等于 max。
  • 'name|count': string:通过重复 string 生成一个字符串,重复次数等于 count。

2. 属性值是数字 Number

  • 'name|+1': number:属性值自动加 1,初始值为 number
  • 'name|min-max': number:生成一个大于等于 min、小于等于 max 的整数,属性值 number 只是用来确定类型。
  • 'name|min-max.dmin-dmax': number:生成一个浮点数,整数部分大于等于 min、小于等于 max,小数部分保留 dmin 到 dmax 位。
Mock.mock({
    'number1|1-100.1-10': 1,
    'number2|123.1-10': 1,
    'number3|123.3': 1,
    'number4|123.10': 1.123
})
// =>
{
    "number1": 12.92,
    "number2": 123.51,
    "number3": 123.777,
    "number4": 123.1231091814
}

3.属性值是布尔型 Boolean

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

4.属性值是对象 Object

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

5. 属性值是数组 Array

  • 'name|1': array 从属性值 array 中随机选取 1 个元素,作为最终值。
  • 'name|+1': array从属性值 array 中顺序选取 1 个元素,作为最终值。
  • 'name|min-max': array通过重复属性值 array 生成一个新数组,重复次数大于等于 min,小于等于 max。
  • 'name|count': array:通过重复属性值 array 生成一个新数组,重复次数为 count。

6.属性值是函数 Function

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

7. 属性值是正则表达式 RegExp
'name': regexp:根据正则表达式 regexp 反向生成可以匹配它的字符串。用于生成自定义格式的字符串。

mock常用方法

  • Random.boolean( min?, max?, current? )

Random.natural( min?, max? )返回一个随机自然数,最小值为min,最大值为max
Random.integer( min?, max? )返回一个随机整数
Random.float( min?, max?, dmin?, dmax? )返回一个随机的浮点数。
Random.character( pool? )随机选取一个字符返回
Random.range( start?, stop, step? )返回一个整型数组。
Random.date( format? )返回一个随机的日期字符串,默认值为 yyyy-MM-dd
Random.image( size?, background?, foreground?, format?, text? )生成一个随机的图片地址。
Random.color()随机生成一个有吸引力的颜色,格式为 '#RRGGBB'。
Random.cname()随机生成一个常见的中文姓名。
Random.id()随机生成一个 18 位身份证。

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