mock基础

什么是mock?(作用)

=>  是一种模拟后端借口的解决方案。 (可以让前端提前调用接口,完成前端开发)

 

优点

1、前后端分离:让前端独立于后端进行开发

2、增加单元测试的真实性:可模拟多场景的数据

3、开发无侵入:不需要修改现有的代码,可拦截ajax请求,返回模拟的返回数据

4、用法简单:适用于大多数接口

5、数据类型丰富:支持生成随机的文本、数字、布尔值、日期、邮箱、链接、图片、颜色等

6、方便扩展:支持自定义函数和正则

语法规范(数据模版&数据占位符)

1、数据模版定义规范

=>  数据模版中的每个属性由三部分组成('属性名|生成规则' :属性值)
'name|rule':value
举个🌰——字符串:
// w随机出现1-10次,1-10表示重复次数
var data = Mock.mock ({'username|1-10' : 'w'})
// w出现5次
var data = Mock.mock ({'username|5' : 'w'})
举个🌰——数字:
// 数字中的1-10表示的数字的范围,1为初始默认值
var data = Mock.mock ({'age|1-10' : 1})

2、数据占位符定义规范

=>  占位符只是在属性值字符串中占个位置,并不出现在最终属性值中

@占位符
@占位符(参数[,参数]
举个🌰:
// 随机生成一个id  '()'可不写,写了是用来传参
var data = Mock.mock ('@id()')
// 随机生成一个中文名称
var data = Mock.mock ('@cname()')
// 随机生成一个日期
var data = Mock.mock ("@date('yyyy-mm-dd')")
// 随机生成一段描述
var data = Mock.mock ('@paragraph()')
// 随机生成一个邮箱
var data = Mock.mock ('@email()')

基本流程

安装 ->  导入 ->  使用

安装:

cnpm install mockjs -D
(ps: 安装时提醒node版本不够高,需先升级node版本)
// 升级node
sudo npm i -g n
sudo n stable

// 查看node版本
node -v

导入:

var Mock = require('mockjs')

使用:

var data = Mock.mock({...})

在项目中使用的流程

1、定义接口路由在接口中返回mock模拟的数据

(见基本流程)

mock/index.js

// 引入 var Mock = require('mockjs') // 暴露出去 module.exports = function(app){ if (process.env.MOCK == 'true') { // 参数1:借口地址;参数2:服务器处理函数(req:请求对象;res:响应对象) app.use('/api/userinfo', (req, res) => { // 随机生成一个对象 var data = Mock.mock ({
                id: '@id()',
                username: '@cname()',
                date: '@date(yyyy-mm-dd)',
                description: '@paragraph()',
                email: '@email()', 'age|1-100': 23 }) // 将模拟的数据转成json格式并返回给浏览器  res.json(data) // console.log(data, 'data')  })
    }
}

2、在vue.config.js中配置devServer,在before属性中引入接口路由参数

module.exports = {
    devServer: { // devServer 在发送请求时,回先走到before指定的函数中进行处理,如果before中没有对应的接口路由,才会请求外网等。 before: require('../mock/index.js')
      }
}

3、使用axios调用该接口获取数据

axios.get('/api/userinfo').then(res => {
      console.log(res.data, 'res')
})

控制是否使用mock

=> 新建一个env.development文件

MOCK = true // MOCK = false

(ps: 判断语句见在项目中使用的流程的1)





全部评论

相关推荐

深夜书店vv:腾讯是这样的,去年很多走廊都加桌子当工区
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务