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 配置成功.

目录
相关文章
|
前端开发
什么是 Mock 测试?掌握 Mock 测试的核心原理
Mock 的意思就是,当你很难拿到源数据时,你可以使用某些手段,去获取到跟源数据相似的假数据,拿着这些假数据,前端可以先行开发,而不需要等待后端给了数据后再开发。
|
1月前
|
JSON 前端开发 API
mock基本使用
【10月更文挑战第4天】
39 1
|
2月前
|
存储 缓存 NoSQL
webFilter实现mock接口
这段代码实现了一个名为 `MockFilter` 的类,继承自 `WebFilter` 接口,用于处理 HTTP 请求和响应。它通过从 Redis 缓存中获取配置信息来决定是否使用模拟数据或缓存数据来响应请求。如果开启了生产模式或关闭了模拟和缓存功能,则直接放行请求。否则,它会检查请求体并根据配置返回相应的模拟或缓存数据。同时,该过滤器支持对响应结果进行处理,并将结果存储回 Redis 中。
|
4月前
|
测试技术
详解单元测试问题之处理@Mock注解时mock对象的创建如何解决
详解单元测试问题之处理@Mock注解时mock对象的创建如何解决
44 1
|
4月前
|
前端开发
什么是 Mock 测试?
Mock 是在前后端分离开发中,用于模拟后端数据的工具,让前端能提前开发而无需等待真实接口。它的重要性在于加速协同开发,避免因数据延迟导致的阻塞。通过工具如 Apifox,可以创建请求,设定 Mock 参数和测试脚本,进行 Mock 测试以确保数据符合预期。了解 Mock.js 语法有助于更好地进行 Mock 测试。
|
NoSQL JavaScript 前端开发
部署自己的MOCK(一)
本文适合团队内部没有MOCK服务,对mock有实际需要的小伙伴。
部署自己的MOCK(一)
|
数据可视化 前端开发 Java
Mock工具介绍,为什么使用Mock?
Mock工具介绍,为什么使用Mock?
604 0
部署自己的MOCK(二)
本文适合团队内部没有MOCK服务,对mock有实际需要的小伙伴。
|
敏捷开发 设计模式 Java
mock打桩之EasyMock
TDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只使用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。
mock打桩之EasyMock
|
开发框架 JSON Java
接口自动化测试之Mock
  在某些时候,后端在开发接口的时候,处理逻辑非常复杂,在测试的时候,后端在未完成接口的情况下该如何去测试呢?   我们需要测试,但是有些请求又需要修改一下参数,或者改变一下request实现的方式,比如修改状态码,产生的图片要进行替换,或者是替换执行文件等
536 0