Mock简明文档

Mock.mock()

  • Mock.mock( requestUrl?, requestType?, template|function(options) )
  • Mock.mock( template )
  • Mock.mock( requestUrl, template )
  • Mock.mock( requestUrl, requestType, template )
  • Mock.mock( requestUrl, requestType, function(options) )

requestUrl: 要拦截的URL,字符串或正则表达式

equestType: 要拦截的请求类型,get/post/put/delete/options…

template: 数据模板

function(options):生成响应数据的函数,options --> { url, type, body }


语法规范

数据模板定义

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

  1. ‘name|min-max’: value
  2. ‘name|count’: value
  3. ‘name|min-max.dmin-dmax’: value
  4. ‘name|min-max.dcount’: value
  5. ‘name|count.dmin-dmax’: value
  6. ‘name|count.dcout’: value
  7. ‘name|+step’: value

属性值中可以包含@占位符

属性值还指定了最终值的初始值和类型

1.属性值是字符串

  1. ‘name|min-max’: string

通过重复 string 生成一个字符串,重复次数大于等于 min,小于等于 max

  1. ‘name|count’: string

通过重复 string 生成一个字符串,重复次数等于 count

2.属性值是数字

  1. ‘name|+1’: number

属性值自动加 1,初始值为 number

  1. ‘name|min-max’: number

生成一个大于等于 min、小于等于 max 的整数,属性值 number 只是用来确定类型

  1. ‘name|min-max.dmin-dmax’: number

生成一个浮点数,整数部分大于等于 min、小于等于 max,小数部分保留 dmin 到 dmax 位

3.属性值是布尔值

  1. ‘name|1’: boolean

随机生成一个布尔值,值为 true 的概率是 1/2,值为 false 的概率同样是 1/2

  1. ‘name|min-max’: value

随机生成一个布尔值,值为 value 的概率是 min / (min + max),值为 !value 的概率是 max / (min + max)

4.属性值是对象

  1. ‘name|count’: object

从属性值 object 中随机选取 count 个属性

  1. ‘name|min-max’: object

从属性值 object 中随机选取 min 到 max 个属性

5.属性值是数组

  1. ‘name|1’: array

从属性值 array 中随机选取 1 个元素,作为最终值

  1. ‘name|+1’: array

从属性值 array 中顺序选取 1 个元素,作为最终值

  1. ‘name|min-max’: array

通过重复属性值 array 生成一个新数组,重复次数大于等于 min,小于等于 max

  1. ‘name|count’: array

通过重复属性值 array 生成一个新数组,重复次数为 count

6.属性值是函数

  1. ‘name’: function

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

7.属性值是正则表达式

  1. ‘name’: regexp

根据正则表达式 regexp 反向生成可以匹配它的字符串。用于生成自定义格式的字符串

数据占位符定义

  1. 用 @ 来标识其后的字符串是 占位符
  2. 占位符 引用的是 Mock.Random 中的方法
  3. 通过 Mock.Random.extend() 来扩展自定义占位符
  4. 占位符 也可以引用 数据模板 中的属性
  5. 占位符 会优先引用 数据模板 中的属性
  6. 占位符 支持 相对路径 和 绝对路径

Mock.setup()

配置Ajax请求的行为,暂时支持的配置项有timeout

  Mock.setup({
timeout: 500
})
Mock.setup({
timeout: '100-600'
})

Mock.Random

  const Random = Mock.Random
Random.email() // => sd.sdf@oksd.com
Mock.mock('@email') // => sd.sdf@oksd.com
Mock.mock({ email: 'sd.sdf@oksd.com' }) // => { email: "sd.sdf@oksd.com" }

Mock.Random提供的完整方法(占位符):

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, province, city(bool), county(bool), zip), region
Helper capitalize(首字母大写), upper(大写), lower(小写), pick(从数组任取一个), shuffle(打乱数组元素顺序)
Miscellaneous guid, id

Basic

  1. Random.boolean(min?, max?, current? )
  2. Random.natural(min?, max? )
  3. Random.integer(min?, max? )
  4. Random.float( min?, max?, dmin?, dmax? )
  5. Random.character( pool? ) // pool => lower/upper/number/symbol
  6. Random.string( pool?, min?, max? ) // pool => lower/upper/number/symbol
  7. Random.range( start?, stop, step? )

Date

  1. Random.date( format? )
Format Description Example
yyyy A full numeric representation of a year, 4 digits 1999 or 2003
yy A two digit representation of a year 99 or 03
y A two digit representation of a year 99 or 03
MM Numeric representation of a month, with leading zeros 01 to 12
M Numeric representation of a month, without leading zeros 1 to 12
dd Day of the month, 2 digits with leading zeros 01 to 31
d Day of the month without leading zeros 1 to 31
HH 24-hour format of an hour with leading zeros 00 to 23
H 24-hour format of an hour without leading zeros 0 to 23
hh 12-hour format of an hour without leading zeros 01 to 12
h 12-hour format of an hour with leading zeros 1 to 12
mm Minutes, with leading zeros 00 to 59
m Minutes, without leading zeros 0 to 59
ss Seconds, with leading zeros 00 to 59
s Seconds, without leading zeros 0 to 59
SS Milliseconds, with leading zeros 000 to 999
S Milliseconds, without leading zeros 0 to 999
A Uppercase Ante meridiem and Post meridiem AM or PM
a Lowercase Ante meridiem and Post meridiem am or pm
T Milliseconds, since 1970-1-1 00:00:00 UTC 759883437303
  1. Random.time( format? )
  2. Random.datetime( format? )
  3. Random.now( unit?, format? ) // unit => year、month、week、day、hour、minute、second、week

Image

Random.image()
  1. Random.image()
  2. Random.image( size )
  3. Random.image( size, background )
  4. Random.image( size, background, text )
  5. Random.image( size, background, foreground, text )
  6. Random.image( size, background, foreground, format, text )
Random.dataImage()
  1. Random.dataImage()
  2. Random.dataImage( size )
  3. Random.dataImage( size, text )

Color

  1. Random.color() // => #3538B2
  2. Random.hex() // => #3538B2
  3. Random.rgb() // => rgb(242, 198, 121)
  4. Random.rgba() // => rgba(242, 198, 121, 0.13)
  5. Random.hsl() // => hsl(345, 82, 71)

Text

  1. Random.paragraph( min?, max? )
  2. Random.cparagraph( min?, max? )
  3. Random.sentence( min?, max? )
  4. Random.csentence( min?, max? )
  5. Random.word( min?, max? )
  6. Random.cword( pool?, min?, max? )
  7. Random.title( min?, max? )
  8. Random.ctitle( min?, max? )

Name

  1. Random.first()
  2. Random.last()
  3. Random.name( middle? )
  4. Random.cfirst()
  5. Random.clast()
  6. Random.cname()

Web

  1. Random.url( protocol?, host? )
  2. Random.protocol()
  3. Random.domain() // 域名
  4. Random.tld() // 顶级域名
  5. Random.email( domain? )
  6. Random.ip()

Address

  1. Random.region()
  2. Random.province()
  3. Random.city( prefix? )
  4. Random.county( prefix? )
  5. Random.zip()

Helper

  1. Random.capitalize( word )
  2. Random.upper( str )
  3. Random.lower( str )
  4. Random.pick( arr )
  5. Random.shuffle( arr )

Miscellaneous

  1. Random.guid()
  2. Random.id()
  3. Random.increment( step? )

扩展

Random.extend({
fruit () {
const fruit = ['apple', 'peach', 'lemon']
return this.pick(fruit)
}
})
Random.fruit() // => 'peach'
Mock.mock('@fruit') // => 'lemon'
Mock.mock({
fruit: '@fruit' // => 'peach'
})

Mock.valid()

Mock.valid( template, data )

Mock.toJSONSchema()

Mock.toJSONSchema( template )

Mock简明文档的更多相关文章

  1. Gitlab安装简明文档

    1.关于Gitlab CE / GitLab EE版本的区别:Gitlab CE(Community Edition):Gitlab社区版,可以免费试用,无官方支持.GitLab EE(Enterpr ...

  2. pycaffe简明文档

    pycaffe简明文档 by ChrisZZ, imzhuo@foxmail.com 2018年01月18日19:00:56 说明 caffe的python接口没有官方说明文档,例如查看一个函数的用法 ...

  3. MongoDB配置简明文档

    1.下载MongoDB程序包(RHEL 7 Linux 64-bit x64) [root@mongodb /]# wget -P/usr/local/src/ https://fastdl.mong ...

  4. 由设置body线性背景色引发的问题-----当声明文档类型时,对body设置线性背景色,页面背景色无法整体线性过渡

    问题:当声明文档类型时,对body设置线性背景色,页面背景色无法整体线性过渡 不声明文档类型时,对body设置线性背景色 <HTML> <head> <meta char ...

  5. ServiceFabric极简文档-0. ServiceFabric简介

    前言: 最近ServiceFabric开源了,大家热情都比较高,官方文档大而全,但快速入手不容易找到头绪.发几篇极简的文档,跟大家分享一下,顺便为Ray的ServiceFabric部署做一下铺垫.因为 ...

  6. ServiceFabric极简文档-1.0 Service Fabric 自定义集群部署

    Service Fabric 部署集群:https://docs.microsoft.com/zh-cn/azure/service-fabric/service-fabric-get-started ...

  7. ServiceFabric极简文档-5.0 Service Fabric有状态与无状态

    Service Fabric 应用程序方案 2017/08/14 作者 Edward Chen Jack Zeng Azure Service Fabric提供了一个可靠而灵活的平台,可用于编写和运行 ...

  8. ServiceFabric极简文档-5.1 编程模型选择

    项目中:actor用的服务是无状态服务:ASP.NET Core用的是无状态ASP.NET Core模板. ​

  9. ServiceFabric极简文档-4.1 学习路线图

    Service Fabric学习路线图 原文地址:Service Fabric学习路线图 ​

随机推荐

  1. Istio Routing 实践掌握virtualservice/gateway/destinationrule/AB版本发布/金丝雀发布

    原文 在学习像 Istio 这样的新技术时,看一下示例应用程序总是一个好主意. Istio repo 有一些示例应用程序,但它们似乎有各种不足. 文档中的 BookInfo 是一个很好的示例. 但是, ...

  2. day33:进程II

    目录 1.锁:Lock 2.信号量:Semaphone 3.事件:Event 4.进程队列:Queue 5.生产者和消费者模型 6.JoinableQueue 锁:Lock 1.锁的基本概念 上锁和解 ...

  3. PAT 2-06. 数列求和(20)

    题目意思:给定某数字A(1<=A<=9)以及非负整数N(0<=N<=100000),求数列之和S = A + AA + AAA + … + AA…A(N个A) 最开始一想还以为 ...

  4. springmvc中get和post区别和应用

    最近对post和get什么时候使用 和 应该怎么使用  他俩的区别  有了一些疑问 根据本人的了解   post是对数据进行了封装保护 get是安全性较差的 可以看到数据的信息    post是用来改 ...

  5. JavaScript学习系列博客_1_JavaScript简介

    这个系列博客主要用来记录本人学习JavaScript的笔记,从0开始,即使有些知识我也是知道的.但是会经常忘记,干脆就写成博客,没事的时候翻来看一看,留下一点学习的痕迹也好.可能写博客的水平暂时不太好 ...

  6. Hive 常见面试题(一)

    面试题: hive 内部表和外部表的区别? hive 是如何实现分区的? Hive 有哪些方式保存元数据,各有哪些优缺点? hive中order by.distribute by.sort by和cl ...

  7. 区块链入门到实战(22)之以太坊(Ethereum) – 账号(地址)

    作用: 外部账号 – 用户使用的账号,账户余额. 合约账号 – 智能合约使用的账号,每个智能合约都有一个账号,内存和账户余额 以太坊(Ethereum)网络中,有2种账号: 外部账号 – 用户使用的账 ...

  8. 原生 JavaScript30 练习 Day 1 (原生JS控制键盘模拟击鼓)

     代码如下   <!DOCTYPE html> <html lang="en"> <head>     <meta charset=&qu ...

  9. 释放数据价值:DAYU数据运营新能力解读

    摘要:从比特到信息,这说的其实就是企业数字化转型,让数据的价值充分发挥出来,变成信息. 今天,企业对数据越来越重视,数据已经成为了企业新型的资产,甚至是核心资产,最近流传一句非常有意思的话:从比特到信 ...

  10. Cross-Site Scripting: Reflected

    首先贴解决办法吧,解决了我项目中的问题,不一定适用所有情况. //For Cross-Site Scripting: Reflected public static String filter(Str ...