美文网首页
初始 Mock

初始 Mock

作者: 王二麻子88 | 来源:发表于2021-03-16 20:48 被阅读0次

关于Mock

一. 在Vue中使用Mock

  • 安装Mock

npm i mockjs --save-dev

  • /mock/userInfo.json5 定义虚拟数据

    {
      id: "@id()",  // 生成随机ID
      name: "@cname()",  // 中文名字
      date: "@date()",  // 日期
      avatar: '@image("200x200", "red", "#fff", "avatar")',  // 头像
      description: '@paragraph()',  // 描述
      ip: "@ip()",  // IP地址
      email: "@email()" // 邮箱
    }
    
  • mock/index.js 引用虚拟数据

    // Mock数据入口文件
    const fs = require('fs');
    const path = require("path");
    const Json5 = require("json5");   // json5是第三方插件 需要引入
    const Mock = require("mockjs");
    
    function getJsonFile(filePath) {
      return fs.readFileSync(path.join(__dirname, filePath), 'utf-8')
    }
    
    // 需要返回一个函数
    module.exports = function (app) {
      // 在开发环境初期才使用 Mock
      if (process.env.MOCK === "true") {
        app.get("/user/userInfo", function (req, res) {
          var json = getJsonFile("./userInfo.json5");
          json = Json5.parse(json);
          res.json(Mock.mock(json))
        })
      }
    
    };
    
    

    注: process.env 是 webpack 在不同运行模式下存放的一些变量

  • .env.development(在项目根路径下) 中进行开发时环境的配置

    该文件下定义变量在 打包正式运行之后都会消失

    MOCK=true
    
  • vue.config.js 进行访问拦截

    module.exports = {
      devServer: {
        port: 8848,
        before: require("./mock/index.js"),
      }
    };
    
  • 测试用例

    axios.get("/user/userInfo").then(res => {
        console.log(res.data);
        // console.log(res);
    })
    

二. 在jQuery项目中使用Mock

  • 应用Mock.js

<script type="text/javascript" src="js/mock.js"></script>

  • 引入mockjs 的数据处理文件

<script src="mock/index.js" type="text/javascript"></script>

  • mock/index.js 文件中
// 其中需求声明接口请求的路径, 以及请求的方法, 返回的参数
Mock.mock('/user/userInfo', 'get', {
  id: "@id()",  // 生成随机ID
  name: "@cname()",  // 中文名字
  date: "@date()",  // 日期
  avatar: '@image("200x200", "red", "#fff", "avatar")',  // 头像
  description: '@paragraph()',  // 描述
  ip: "@ip()",  // IP地址
  email: "@email()" // 邮箱
});
  • 在主逻辑应用该Mock提供的接口
$.ajax({
      url: "/user/userInfo",
      method: "GET",
      type: "GET",
      dataType: 'json'  // 声明返回的数据类型是json类型, 否则默认为字符串或者后端额外声明
    }).then(function (res) {
      // var json = JSON5.parse(res); // 如果返回的是字符串的JsonString, 可以用Json5进行解析
      // console.log(json);
      console.log(res);
    })

注: json5 解析是第三方工具包

在正式的应用中, 可以加入一个全局变量来控制 Mock.mock是否运行

相关文章

  • 初始 Mock

    关于Mock 一. 在Vue中使用Mock 安装Mock npm i mockjs --save-dev 在 /...

  • 如何搭建mock服务,模拟数据

    1. 新建一个mock项目 mkdir mockTest 2. 进入项目 cd mockTest ,初始化mock...

  • 3.2 使用mock-up

    只需要在@BeforeClass,@Before,@Test方法中初始化mock-up就可以使用。 mock-up...

  • 2018-06-08 Mockito

    Mockito 初始化注解 背景:使用@Mock,@spy,@InjectMock等注解需要先初始化才能使用。 初...

  • Mock简明文档

    Mock简明文档 Mock.mock() Mock.mock( requestUrl?, requestType?...

  • mockjs

    https://github.com/nuysoft/Mock/wiki/Mock.mock() 常用方法Mock...

  • 使用 Mockjs 模拟数据

    Mock 数据 Mock 在 vue 中的使用 使用npm下载mock 2.使用 mock 在 mock 文件夹下...

  • Contacts(TableViewController)报错总

    1. mock网络问题 问题:mock网络的JSON数据无法获取 提示:mock请求出错:mock....777...

  • iOS单元测试资料收集

    mock 中文资料 官方原版教程,开始mock mock3 API 参考

  • mock语法

    mock使用方法 Mock.mock( rurl?, rtype?, template|function( opt...

网友评论

      本文标题:初始 Mock

      本文链接:https://www.haomeiwen.com/subject/pfhjcltx.html