mock数据(自己写的数据)

mock数据(自己写的数据)


前言

mock是什么?

Mock简单来理解,就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试。而这个虚拟的对象就是mock对象。mock对象就是真实对象在调试期间的代替品。


一、准备工作

首先需要准备一个vue的项目

  1. 先打开需要创建项目的文件夹下方输入cmd打开窗口
  2. 在窗口输入vue create 项目的名称
  3. 选择使用vue2.x版本
  4. 等待创建,完成后进入文件夹内部在控制台输入npm run serve

二、使用步骤

1.引入包

在终端输入

npm i mockjs@1.1.0 --save

2.创建文件

在src下创建文件夹mock,在该文件夹下创建mockServe.js,在同级目录创建两个自己的json:

├── mock
     ├──mockServe.js
     └── demo01.json
     └── demo02.json

3.编写mockServe.js和数据

实例代码如下:

// 该文件用于模拟虚拟资源
// 引入mockjs
import Mock from 'mockjs'
// 引入JSON文件,不需要对外暴露
import demo01 from './demo01.json'
import demo02 from './demo02.json'

// mock数据 第一个个参数是请求的地址,第二个参数是你请求数据
Mock.mock('/mock/demo01', {
  code: 200,
  data: demo01
})
Mock.mock('/mock/demo02', {
  code: 200,
  data: demo02
})

demo01.json参考数据:

[
  {
    "id": "1",
    "imgUrl": "/images/101.jpg"
  },
  {
    "id": "2",
    "imgUrl": "/images/102.jpg"
  },
  {
    "id": "3",
    "imgUrl": "/images/103.jpg"
  },
  {
    "id": "4",
    "imgUrl": "https://tse1-mm.cn.bing.net/th/id/OIP-C.5ALcarpnOz8YbT1uBA6c3QHaLG?w=182&h=273&c=7&r=0&o=5&dpr=1.25&pid=1.7"
  },
  {
    "id": "5",
    "imgUrl": "https://tse1-mm.cn.bing.net/th/id/OIP-C.CGH_mffKOftvP4g_9KxEIQHaLH?w=182&h=273&c=7&r=0&o=5&dpr=1.25&pid=1.7"
  },
  {
    "id": "6",
    "imgUrl": "https://tse4-mm.cn.bing.net/th/id/OIP-C.ZJxGeT0cpQybqU-41gm1nQAAAA?w=182&h=273&c=7&r=0&o=5&dpr=1.25&pid=1.7"
  }
]

需要在public文件夹下创建一个images的文件夹,里面保存我们所需的图片,也可以采用图像的地址

4.入口引入

我们需要在入口文件引入,让mock的数据执行一次

// 引入mock数据
import './mock/mockServe.js'

5.发送请求

发送请求我们需要使用axios,所以我们先下载所需的包

npm i axios@0.26.1

在src新建一个api文件夹,在该文件夹下创建mock.js来进行封装

import axios from 'axios'

const service = axios.create({
  baseURL: '/mock',
  timeout: 5000,
  withCredentials: false // 表示跨域请求时是否需要使用凭证
})

// 请求拦截器
service.interceptors.request.use(
  config => config,
  (error) => {
    console.log(error)
    return Promise.reject(error)
  }
)

// 响应拦截器
service.interceptors.response.use(
  response => response.data,
  (error) => {
    console.log('err' + error)
    return Promise.reject(error)
  }
)

export default service

接下来可以利用封装好的axios编写请求,在api文件夹下创建mockServe.js文件,书写内容

// mock的数据
import request from './mock.js'

// 获取图片列表
export function reqImgList() {
  return request({
    url: '/demo01',
    method: 'get'
  })
}

6.项目使用

简单在App.vue文件使用一下

<template>
  <div id="app">
    <img class="images" :src="i.imgUrl" v-for="(i, index) in img" :key="index" />
  </div>
</template>

<script>
import { reqImgList } from './api/mockServe.js'
export default {
  name: 'App',
  data() {
    return {
      img: []
    }
  },
  methods: {
    async reqImgList() {
      const res = await reqImgList()
      if (res.code == 200) {
        this.img = res.data
        console.log(res.data)
      }
    }
  },
  mounted() {
    this.reqImgList()
  }
}
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
.images{
  width: 400px;
}
</style>

总结

以上就是今天要讲的内容,本文仅仅简单介绍了mock的使用,针对自己书写的数据,如果采用mock自带的生成数

据参考:https://blog.csdn.net/The_more_more/article/details/124202585

<think>好的,用户现在想了解Mock数据的定义和用途,特别是作用和使用场景。之前用户问了关于Selenium启动参数的问题,现在转向Mock数据,可能需要前后端协作或测试相关的知识。用户提供的引用内容里提到了Mock数据用于前后端分离开发,当后端接口还没完成时,前端可以自己模拟数据继续开发。引用中还提到了具体的实现方式,比如本地启Mock服务器、使用FastMock线上服务,以及在项目中通过创建JS文件来模拟接口响应。 首先,我需要明确用户的需求,他们可能是在开发过程中遇到了后端接口延迟的问题,想要了解如何利用Mock数据来继续前端的工作。用户可能是一个前端开发者,或者刚接触Mock数据的概念,需要基础的解释和实际应用场景。 接下来,根据引用内容,Mock数据的定义是前端模拟后端接口返回的数据,用途主要是保证开发进度,不依赖后端完成。使用场景包括前后端并行开发、测试不同数据情况、离线开发等。需要结合用户提供的引用,给出具体的实现方式,比如本地服务器、项目内Mock文件等,并且可能需要提到工具如FastMock。 用户可能还想知道Mock数据的好处,比如提升效率、降低依赖风险、方便测试等。要确保回答结构清晰,分点说明定义、作用、场景和实现方式,并给出示例代码,这样用户能更直观地理解。同时,生成的相关问题需要围绕Mock数据的深入应用,比如如何创建复杂数据、与后端联调注意事项、Mock服务选择等,帮助用户进一步学习。 最后,检查是否符合之前的回答格式,使用中文,正确引用标记,确保LaTeX格式正确,但用户的问题中没有数学表达式,所以可能不需要。还要注意用户的历史问题,可能涉及自动化测试,Mock数据在此场景下的应用也是一个关联点。</think>### Mock数据的定义与核心作用 **Mock数据**是前端开发中模拟真实后端接口响应的虚拟数据。其核心作用是:**消除前后端开发耦合**,当后端接口未完成时,前端通过预设数据流保证功能开发进度[^1]。 --- ### 核心价值矩阵 $$ DevelopmentEfficiency = \frac{FunctionalModules}{Time} \times MockCoverage $$ 该公式表明:Mock覆盖率越高,单位时间内可开发的功能模块越多 --- ### 核心应用场景 #### 1. 并行开发模式 - **前后端解耦**:后端开发API时,前端同步开发功能模块 - **示例**:用户登录模块开发 ```javascript // user.js module.exports = [{ url: '/user/login', type: 'post', response: config => { return { code: 200, data: { token: 'mock_jwt_token' } } } }] ``` #### 2. 异常测试场景 - 模拟服务器500错误 - 网络延迟响应测试 - 大数据量压力测试 #### 3. 离线开发支持 - 无网络环境下的功能开发 - 跨地域团队协作 --- ### 企业级Mock实施方案 #### 分层架构 ```mermaid graph TD A[UI组件] --> B[Mock Service] B --> C{环境判断} C -->|开发环境| D[本地Mock数据] C -->|测试环境| E[远程Mock服务器] C -->|生产环境| F[真实接口] ``` #### 动态响应配置 ```javascript // 根据请求参数生成动态数据 { url: '/api/search', type: 'get', response: config => { const { keyword } = config.query return { code: 200, data: { items: Array(10).fill().map((_,i) => ({ id: i+1, title: `${keyword}结果${i+1}` })) } } } } ``` --- ### 最佳实践原则 1. **版本同步**:Mock数据结构与接口文档保持严格一致 2. **环境隔离**:通过webpack环境变量控制Mock开关 3. **数据校验**:使用JSON Schema验证数据结构 ```javascript const schema = { "type": "object", "properties": { "code": { "type": "integer" }, "data": { "type": "array", "items": { "type": "string" } } } } ``` --- ### 工具链推荐 1. **本地开发**:Mock.js + webpack-dev-server 2. **在线服务**:FastMock/YApi 3. **高级模拟**:Postman Mock Server ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值