网站首页 > 技术文章 正文
简介
mock是一个模拟数据生成器,旨在帮助前端独立于后端进行开发,帮助编写单元测试。其可模拟 Ajax 并返回模拟数据,使前端不用去调用后端的接口,方便测试。
官网: http://mockjs.com/0.1/#mock
应用
- 安装mock
npm install mockjs
引用
2.引用
在main.js中引用
// main.js
require('./mock');
服务注册
在mock文件夹下创建index.js文件,这里就是我们注册所有mock服务的地方。
// 首先引入Mock
const Mock = require('mockjs');
// 设置拦截ajax请求的相应时间
Mock.setup({
timeout: '200-600'
});
let configArray = [];
// 使用webpack的require.context()遍历所有mock文件
const files = require.context('.', true, /\.js$/);
files.keys().forEach((key) => {
if (key === './index.js') return;
configArray = configArray.concat(files(key).default);
});
// 注册所有的mock服务
configArray.forEach((item) => {
for (let [path, target] of Object.entries(item)) {
let protocol = path.split('|');
Mock.mock(new RegExp('^' + protocol[1]), protocol[0], target);
}
});
mock
Mock.mock() 支持5 种参数格式以及语法规范,详情请移步MOCK官网查询,以下仅以
Mock.mock( rurl?, rtype?, template ) )
// 或者
Mock.mock( rurl, rtype, function( options ) )
方式生成模拟数据。
在mock文件夹下随便创建一个文件demoList.js
在该文件中,我们可以按照index注册服务的格式来写我们的mock。
let demoList = [{
id: 1,
name: 'zs',
age: '23',
job: '前端工程师'
},{
id: 2,
name: 'ww',
age: '24',
job: '后端工程师'
}]
export default {
'get|/parameter/query': option => {
return {
status: 200,
message: 'success',
data: demoList
};
}
}
当在页面发起了ajax请求,路径是’/parameter/query’,并且请求方式是get时,就会返回写好的mock数据。
也可以使用template返回,方式如下:
let demoList = {
status: 200,
message: 'success',
data: [{
id: 1,
name: 'zs',
age: '23',
job: '前端工程师'
},{
id: 2,
name: 'ww',
age: '24',
job: '后端工程师'
}]
}
export default {
'get|/parameter/query': demoList
}
当我们想要展示大量数据时,不可能一个一个写,那样又费时又费力,这是我们就可以根据mockjs的语法规范来快速生成一系列的数据。
let demoList = {
status: 200,
message: 'success',
data: {
total: 100,
'rows|10': [{
id: '@guid',
name: '@cname',
'age|20-30': 23,
'job|1': ['前端工程师', '后端工程师', 'UI工程师', '需求工程师']
}]
}
};
export default {
'get|/parameter/query': demoList
}
这样我们就可以每次随机生成10条数据,总数为100条,其中id和name使用的占位符,age是随机取出20-30中的数字,job是随机取出其后数组中的某一项,这在mock文档里都有说明。
附 测试分类
前端的测试主要有两种,单元测试和E2E测试。
- 单元测试:按空间切割,对每个组件进行测试;
比如,要测试日期输入框,那么编写的测试用例应该包括以下部分:
默认日期是否为当天
当用户选择日期范围,data是否会做相应改变
...
- E2E测试:按时间切割,对每个流程进行测试;
比如,要测试搜索功能,那么编写的测试用例应该模拟以下步骤:
- 打开主页
- 点击菜单跳转到详情页
- 输入搜索条件
- 点击搜索
- 查看搜索结果是否与预期一致
猜你喜欢
- 2024-10-06 想要mock你的网络请求?还不快来学习Charles
- 2024-10-06 测试工具链—— AnyProxy搭建HTTP(S)代理服务器构建Mock服务(一)
- 2024-10-06 Mock工具wiremock-py mock工具类静态方法返回值
- 2024-10-06 当 Swagger 遇上 Torna,瞬间高大上了
- 2024-10-06 Mockjs POST和GET不同参数返回不同结果的实现方法
- 2024-10-06 mock介绍及moco框架搭建使用 mockoa
- 2024-10-06 对于依赖第三方的接口如何进行测试?
- 2024-10-06 本地部署easy-mock 本地部署sd的最低配置要求
- 2024-10-06 利用 apipost 生成mock数据 怎么生成api接口
- 2024-10-06 Mock工具之Moco使用教程 mock新手教程
你 发表评论:
欢迎- 501℃几个Oracle空值处理函数 oracle处理null值的函数
- 495℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 494℃Oracle分析函数之Lag和Lead()使用
- 482℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 473℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 468℃【数据统计分析】详解Oracle分组函数之CUBE
- 453℃Oracle有哪些常见的函数? oracle中常用的函数
- 449℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 最近发表
-
- Directus 火了!无代码 SQL 数据的协作应用利器!
- PHP和NodeJS的代码执行效率比较(php和nodejs的区别)
- 工商银行获得发明专利授权:“基于数据库映射动态接口的前端页面应用开发方法及装置”
- FAISS和Chroma:两种流行的向量数据库的比较
- 什么是数据库的索引?(数据库索引的定义和作用)
- Vercel和Neon“首次”推出用于前端云的无服务器SQL数据库
- 记一次前端逻辑绕过登录到内网挖掘
- 学Access好还是MySQL好?(access与mysql的语句区别)
- 惬意!清晨慢品 HTML canvas 标签题,面试知识轻松 get
- 前端实现知识图谱-force(d3.js)(前端知识树)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)