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. 【期外】(三)Linux下集成开发环境Geany

    今天小编发现了一个很好的软件,它的名字就叫做Geany. 这是Linux系统中的开发工具,相当的好用. Linux与windows最大的不同正是不是集成开发环境,所以写起代码来总是用文档写好后,然后再 ...

  2. 手牵手,使用uni-app从零开发一款视频小程序 (系列下 开发实战篇)

    系列文章 手牵手,使用uni-app从零开发一款视频小程序 (系列上 准备工作篇) 手牵手,使用uni-app从零开发一款视频小程序 (系列下 开发实战篇) 扫码体验,先睹为快 可以扫描下微信小程序的 ...

  3. DFS【搜索1】

    DFS模板 void dfs(int depth)//depth表示当前的层数(或深度) { if(depth>n)//到达叶子节点,该路已走到尽头 return; for(int i=;i&l ...

  4. C++置换的玩笑

    小蒜头又调皮了.这一次,姐姐的实验报告惨遭毒手. 姐姐的实验报告上原本记录着从 1 到 n 的序列,任意两个数字间用空格间隔.但是“坑姐”的蒜头居然把数字间的空格都给删掉了,整个数字序列变成一个长度为 ...

  5. Jmeter系列(51)- 详解 Transaction Controller 事务控制器

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 简单介绍 可以添加多个取样器(samp ...

  6. springMVC入门(八)------拦截器

    简介 springMVC拦截器针对处理器映射器进行拦截配置 如果在某个处理器映射器中配置拦截,经过该处理器映射器映射成功的Handler最终使用该拦截器 由于springMVC支持配置多个处理器映射器 ...

  7. Docker-Docker容器跨主机通信

    Docker默认的网络环境下,单台主机上的Docker容器可以通过docker0网桥直接通信,而不同主机上的Docker容器之间只能通过在主机上做端口映射进行通信.这种端口映射方式对很多集群应用来说极 ...

  8. CentOS 7/8上部署Ceph

    Ceph是一个分布式的存储系统,可以在统一的系统中提供唯一的对象.块和文件存储,Ceph的大致组件如下: 1. Ceph监视器(ceph-mon):用来维护集群状态的映射,包括监视器映射,管理器映射, ...

  9. JDK、JRE与JVM之间的关系

    初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧: JDK(Java Development Kit)简单理解就是Java开发工具包,JRE(Java Runtime Env ...

  10. efcore技巧贴-也许有你不知道的使用技巧

    前言 .net 环境近些年也算是稳步发展.在开发的过程中,与数据库打交道是必不可少的.早期的开发者都是DbHelper一撸到底,到现在的各种各样的ORM框架大行其道.孰优孰劣谁也说不清楚,文无第一武无 ...