Skip to content
本页目录

测试辅助包 mas-mock

测试辅助包用于开发测试时,模拟服务接口返回数据,基于 mockjs 实现

用法

引入 mas-mock 包,具体用法如下:

js
import Mock from 'mas-mock'

Mock.mock(/api\/admin\/platform\/account-info\/update/, {
  "code": 0, 
  "data": {},
  "msg": "执行成功" 
})

关于Mock的具体用法,可以参考Mock.js 官方网站:http://mockjs.com/

Mock.mock() 使用说明

Mock.mock()方法可以拦截Ajax请求,并根据数据模板生成返回模拟数据。方法定义如下:

js
Mock.mock( rurl?, rtype?, template|function( options ) )

共有 5 种参数格式。

Mock.mock( template )

根据数据模板生成模拟数据。

Mock.mock( rurl, template )

记录数据模板。当拦截到匹配 rurl 的 Ajax 请求时,将根据数据模板 template 生成模拟数据,并作为响应数据返回。

Mock.mock( rurl, function( options ) )

记录用于生成响应数据的函数。当拦截到匹配 rurl 的 Ajax 请求时,函数 function(options) 将被执行,并把执行结果作为响应数据返回。

Mock.mock( rurl, rtype, template )

记录数据模板。当拦截到匹配 rurlrtype 的 Ajax 请求时,将根据数据模板 template 生成模拟数据,并作为响应数据返回。

Mock.mock( rurl, rtype, function( options ) )

记录用于生成响应数据的函数。当拦截到匹配 rurlrtype 的 Ajax 请求时,函数 function(options) 将被执行,并把执行结果作为响应数据返回。

参数的含义和默认值

rurl

可选。

表示需要拦截的 URL,可以是 URL 字符串或 URL 正则。例如 /\/domain\/list\.json/'/domian/list.json'

rtype

可选。

表示需要拦截的 Ajax 请求类型。例如 GETPOSTPUTDELETE 等。

template

可选。

表示数据模板,可以是对象或字符串。例如 { 'data|1-10':[{}] }'@EMAIL'

function(options)

可选。

表示用于生成响应数据的函数。

options

指向本次请求的 Ajax 选项集,含有 urltypebody 三个属性,参见 XMLHttpRequest 规范

从 1.0 开始,Mock.js 通过覆盖和模拟原生 XMLHttpRequest 的行为来拦截 Ajax 请求,不再依赖于第三方 Ajax 工具库(例如 jQuery、Zepto 等)。

Mock.Random() 方法使用

Mock.Random 是一个工具类,用于生成各种随机数据。

Mock.Random 的方法在数据模板中称为『占位符』,书写格式为 @占位符(参数 [, 参数])

js
var Random = Mock.Random
Random.email()
// => "n.clark@miller.io"
Mock.mock('@email')
// => "y.lee@lewis.org"
Mock.mock( { email: '@email' } )
// => { email: "v.lewis@hall.gov" }

方法

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

类型方法/占位符
基础boolean, natural, integer, float, character, string, range, date, time, datetime, now
图片image, dataImage
颜色color
文本paragraph, sentence, word, title, cparagraph, csentence, cword, ctitle
姓名first, last, name, cfirst, clast, cname
网络url, domain, email, ip, tld
地址area, region
辅助capitalize, upper, lower, pick, shuffle
其他guid, id

具体用法可参考 Mock.js 官网文档 https://github.com/nuysoft/Mock/wiki/Mock.Random

扩展

Mock.Random 中的方法与数据模板的 @占位符 一一对应,在需要时还可以为 Mock.Random 扩展方法,然后在数据模板中通过 @扩展方法 引用。例如:

js
Random.extend({
    constellation: function(date) {
        var constellations = ['白羊座', '金牛座', '双子座', '巨蟹座', '狮子座', '处女座', '天秤座', '天蝎座', '射手座', '摩羯座', '水瓶座', '双鱼座']
        return this.pick(constellations)
    }
})
Random.constellation()
// => "水瓶座"
Mock.mock('@CONSTELLATION')
// => "天蝎座"
Mock.mock({
    constellation: '@CONSTELLATION'
})
// => { constellation: "射手座" }

引用其他微服务提供的mock数据

js
import 'mas-core/mock'

内部资料,请勿外传