Mock
mock的语法规范包括两部分
-
数据模板定义规范 (Data Template Definition DTD)
-
数据占位符定义规范 (Data Placeholder Definition DPD)
数据模板定义规范:
数据模板中的每个属性由三部分组成:属性名,生成规则,属性值
'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
-
属性值是字符串
-
'name|mim-max':string: 通过重复的string生成一个字符串,重复次数大于等于min 小于max
-
'name|count':string: 通过重复string 生成一个字符串,重复次数等于count
const Mock = require("mockjs"); let str = Mock.mock({ 'name|1-6':'李权' }) console.log(str); let str1 = Mock.mock({ 'name|5': '李权' }) console.log(str1);
属性值是number
-
'name|+1':number : 属性值自动加一,初始值为number
-
'name|min-max':number : 生成一个大于等于min 或小于max的数, number属性值只是用来确定类型
-
'name|min-max.dmin-dmax': 生成一个大于等于min或小于max 小数部位在 dmin或dmax的数, number属性值只是用来确定类型的
const mockjs = require('mockjs');
const {mock} = require('mockjs');
console.log(mock);
let number1 = mock({
'number1|1-9':1,
'number2|1-9':1
})
console.log(number1);
let number2 = mock({
'number|5':1,
})
// 注意当值为number类型的时候,规则只有一个数,那么值用于为规则中的那个数
console.log(number2);
属性值为Boolean
-
'name|1':boolean; 随机生成一个bool值true的概率为二分之一false同样
-
'name|min-max':value;随机生成一个bool值但是value的概率min/max+min !value的概率为 max/min+max
属性值为对象 object
-
'name|1':object 从属性值中随机选取count个属性
-
'name|min-max'从属性值中随机选取 min 到max的属性
属性值为数组 array
-
'name|count':array 从属性值中 array 中随机选取 1个元素 作为最终值
-
'name|+1' :array 从属性值中顺序选取1个元素 作为最终值
-
'name| min-max':array 通过重复属性值 array 生成一个新的数组,重复次数大于等于 min 小于 max
-
'name|count':array 通过重复属性值生成一个新的数组,重复次数为count
const mockjs = require("mockjs");
const {mock} = require("mockjs");
let arr = [1,2,3,45,5];
let array = mock({
'name|1':arr
})
let array2 = mock({
'name|+1':arr
})
let array3 = mock({
"name|1-5":arr
})
let array4 = mock({
'name|3':arr
})
console.log(array);
console.log(array2);
console.log(array3);
console.log(array4);
注意:重复属性值 的意思是所有数组的属性而不是从中选取几个属性
Mock.mock
Mock.mock(rurl?,rtype?,template|function(options))
1.根据数据模板生成模拟数据
Mock.mock(template) 根据数据模板生成模拟数据
2.Mock.mock(rurl,template)
记录数据模板,当拦截到匹配的rurl的Ajax请求时候,将根据数据模板template 生成模拟数据,并作为响应数据返回
3.Mock.mock(rurl,function(option))
记录用于生成响应数据的函数,当拦截到匹配的rurl的Ajax请求时,函数 function(options) 将被执行,并把执行结果作为响应数据返回
4.Mock.mock(rurl,rtype,template)
记录用于生成响应数据的函数,当拦截到pipe的rurl 和 rtype类型的Ajax请求时,将根据模板template生成模拟数据,并作为响应数据返回
5.Mock.mock(rurl,rtype,function(option))
记录用于生成响应数据的函数,当拦截到匹配的rurl和rtype的Ajax请求时,函数 function(option)将被执行,并把执行结果作为响应数据返回
rurl
表示需要的拦截的url,可以是 RUL字符串 或URL正则
rtype
表示需要拦截的Ajax请求类型 ,比如get post put delete
Mock.setup()
Mcok.setup(setting) 配置拦截ajax请求时的行为,支持的配置项有 timeout
setting 必选
指定被拦的ajax的请求的响应时间,单位是毫秒,值可以为正整数 比如 400,就是400毫秒后才会响应数据,也可以是横杠 - 风格的字符串,表示在什么之间
Mock.setup({
timout : 400
});
Mock.mock({
timeout: 200-400
})
Mock.Random 就是占位符 相当于@符号
random.integer() == @integer() @符号就相当于一个简写形式
Basiic:
1.Random.boolean(min?,max?,current?)
随机返回一个 bool值
2.rangdom.natural(min?,max?)
Random.natural()
Random.natural(min)
Radom.natural(min,max)
返回个自然数 大于等于0的整数
const {Random} = require("mockjs");
/*natural */
let natural1 = Random.natural()
console.log(natural1);
let natural2 = Random.natural(1);
console.log(natural2);
let natural3 = Random.natural(20,30);
console.log(natural3);
3.Random.integer(min?,max?)
-
Random.integer() Random.integer(min) Rabdom.integer(min,max)
返回一个随机整数 可以为负数
let integer1 = Random.integer();
let integer2 = Random.integer(2);
let integer3 = Random.integer(2,5);
console.log(integer1);
console.log(integer2);
console.log(integer3);