Mock

简介: Mock

Versionmockjs: 1.0.1-beta3

mock 生成随机数组, 数组内数据部分随机

let arr = Mock.mock({
  'array|4-111': [{
    'uid': '@natural(1, 100)',
    'username': '@word',
    'avatar': Random.image('200x200', '#ecc247', '#fff', 'png', 'A'),
    'email': 'admin@sg-ai.com',
    'permission': '@natural(1, 5)'
  }]
})

生成数组结果

{
  "array": [{
    "uid": 60,
    "username": "ksepels",
    "avatar": "http://dummyimage.com/200x200/ecc247/fff.png&text=A",
    "email": "admin@sg-ai.com",
    "permission": 1
  }, {
    "uid": 28,
    "username": "dqwsni",
    "avatar": "http://dummyimage.com/200x200/ecc247/fff.png&text=A",
    "email": "admin@sg-ai.com",
    "permission": 3
  }, {
    "uid": 48,
    "username": "ongutpmtb",
    "avatar": "http://dummyimage.com/200x200/ecc247/fff.png&text=A",
    "email": "admin@sg-ai.com",
    "permission": 4
  }, {
    "uid": 63,
    "username": "ekpgvg",
    "avatar": "http://dummyimage.com/200x200/ecc247/fff.png&text=A",
    "email": "admin@sg-ai.com",
    "permission": 3
  }, {
    "uid": 6,
    "username": "hprlhn",
    "avatar": "http://dummyimage.com/200x200/ecc247/fff.png&text=A",
    "email": "admin@sg-ai.com",
    "permission": 4
  }, {
    "uid": 11,
    "username": "hdoocljebn",
    "avatar": "http://dummyimage.com/200x200/ecc247/fff.png&text=A",
    "email": "admin@sg-ai.com",
    "permission": 1
  }, {
    "uid": 34,
    "username": "ftk",
    "avatar": "http://dummyimage.com/200x200/ecc247/fff.png&text=A",
    "email": "admin@sg-ai.com",
    "permission": 4
  }, {
    "uid": 19,
    "username": "tkkpi",
    "avatar": "http://dummyimage.com/200x200/ecc247/fff.png&text=A",
    "email": "admin@sg-ai.com",
    "permission": 3
  }, {
    "uid": 92,
    "username": "ricibvek",
    "avatar": "http://dummyimage.com/200x200/ecc247/fff.png&text=A",
    "email": "admin@sg-ai.com",
    "permission": 4
  }]
}

mock.js

import Mock from 'mockjs'
const Random = Mock.Random
let arr = Mock.mock({
  'array|4-111': [{
    'uid': '@natural(1, 100)',
    'username': '@word',
    'avatar': Random.image('200x200', '#ecc247', '#fff', 'png', 'A'),
    'email': 'admin@sg-ai.com',
    'permission': '@natural(1, 5)'
  }]
})
// get users
Mock.mock('/api/v1/admin/users', 'get', (option) => {
  return {
    status: true,
    data: {
      users: arr.array
    }
  }
})
// delete users
Mock.mock('/api/v1/admin/users', 'delete', (option) => {
  console.log('delete user ', option)
  let i = arr.array.filter((item, index) => {
    if (item.username === option) {
      return index
    }
  })
  console.log('arr: ', arr.array.length)
  arr.array.splice(i, 1)
  console.log('arr2: ', arr.array.length)
  return {
    status: true
  }
})


在 Vue 项目中使用

Install

进入项目目录使用 npm 安装

npm install mockjs -D

安装好以后在 package.json 中可以看到相关依赖

 "devDependencies": {
    ...
    "mockjs": "^1.0.1-beta3",
    ...

使用

在 src 文件夹下创建名为 mock.js 文件, 根据接口文档编写数据接口以及配置数据, mock.js 中代码如下

import Mock from 'mockjs'
const Random = Mock.Random
console.log(Random)
// Login
Mock.mock('/api/login', 'post', (option) => {
  let { username, password } = JSON.parse(option.body)
  console.log(username, password)
  return (username === 'admin' && password === '123456')
})

在 main.js 引入 mock.js

import Vue from 'vue'
import App from './App.vue'
import './mock.js'
new Vue({
  render: h => h(App)
}).$mount('#app')

在 Vue 组件中, 如 Login.vue 中请求数据

<script>
export default {
  methods: {
    login () {
      this.axios.post('/api/login', {
        username: this.username,
        password: this.password
      }).then((res) => {
        console.log(res.data)
        if (res.data) {
          this.$router.push('home')
        } else {
          this.text = '登录失败! '
          this.snackbar = true
        }
      })
    }
  }
}
</script>


在登录页面上操作, 如果输入用户名: admin 和密码: 123456 登录成功, 输入其他登录失败, 则说明 mock 配置成功.

相关文章
|
7月前
|
前端开发
什么是 Mock 测试?掌握 Mock 测试的核心原理
Mock 的意思就是,当你很难拿到源数据时,你可以使用某些手段,去获取到跟源数据相似的假数据,拿着这些假数据,前端可以先行开发,而不需要等待后端给了数据后再开发。
|
前端开发 JavaScript
Mock 语法讲解
Mock 是生成随机数据,拦截 Ajax 请求的 JavaScript 库。 本文来介绍下 Mock 的常用语法。
Mock 语法讲解
|
数据可视化 前端开发 Java
Mock工具介绍,为什么使用Mock?
Mock工具介绍,为什么使用Mock?
460 0
|
NoSQL JavaScript 前端开发
部署自己的MOCK(一)
本文适合团队内部没有MOCK服务,对mock有实际需要的小伙伴。
部署自己的MOCK(一)
部署自己的MOCK(二)
本文适合团队内部没有MOCK服务,对mock有实际需要的小伙伴。
|
JSON JavaScript API
vue项目里怎么快速mock接口
vue项目里怎么快速mock接口
122 0
|
前端开发 API
除了 Postman ,还可以用它 Mock测试
新版本还支持 API 分享、团队协作功能
除了 Postman ,还可以用它 Mock测试
|
开发框架 JSON 前端开发
接口自动化测试之Mock
  在某些时候,后端在开发接口的时候,处理逻辑非常复杂,在测试的时候,后端在未完成接口的情况下该如何去测试呢?   我们需要测试,但是有些请求又需要修改一下参数,或者改变一下request实现的方式,比如修改状态码,产生的图片要进行替换,或者是替换执行文件等
446 0
|
敏捷开发 设计模式 Java
mock打桩之EasyMock
TDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只使用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。
mock打桩之EasyMock
|
测试技术 API
Mockito 一个优秀的 Mock 测试框架
Hello 大家好,我是阿粉,日常工作中很多时候我们都需要同事间的相互配合协作完成某些功能,所以我们经常会遇到服务或者应用内不同模块之间要互相依赖的场景。比如下面的场景,serviceA 中的 methodA() 方式依赖 serviceB 中的 methodB() 方法返回操作的结果。那如果我们要对自己的methodA() 方法进行编写单元测试,还需要等其他同事的methodB() 方法开发完成才行。那有没有什么办法我们可以跳过或者说模拟方法 B 的输出呢?这就引出了我们今天的主角 Mockito,一个优秀的 Mock 测试框架。
Mockito 一个优秀的 Mock 测试框架