微信小程序mock功能的基本使用

一、环境准备

微信开发者工具1.02.2003062 或以上版本

二、使用方法

基础用法

Mock 的入口在工具调试面板顶部的 Tab,点 + 新建规则

规则示例


运行如下代码:

wx.request({
  url: 'https://example.com/ajax?dataType=member',
  dataType: 'json',
  success(res) {
    console.log(res)
  }
})

将命中上面的规则,得到以下数据:

规则优先级

当对一个 API 配置了多个规则时,靠前的规则,会优先匹配,当一条规则被命中,后面的规则将不会再被执行。

可以通过拖拽的形式,改变规则的优先顺序,得到想要的 Mock 结果。

多层级参数匹配

如果匹配的参数类型不是一个基本类型,而是一个 Object 参数下的某个属性,这时需要用到多层级匹配。

例如:当wx.request调用的data参数带有一个名为mock的属性值为true的时候,才通过 Mock 规则返回结果,参数匹配规则应填写:

上述例子中的wx.request调用,需要修改成:

wx.request({
  url: 'https://example.com/ajax?dataType=member',
  data: {         // \
    mock: true	  // - 添加这三行
  },              // /
  dataType: 'json',
  success(res) {
    console.log(res)
  }
})

才能命中此规则。

使用数据模板

当需要模拟的数据比较复杂的时候,可以使用数据模板快速生成符合你要求的数据。

数据模板的语法采用自开源库 Mock.js,详细的语法可以在该项目文档中查看。

例如:上面的例子,想要返回的 list 包含 10 项不同的数据,可以在“数据生成”中选择“数据模板”,填入如下模板:

{
  "data": {
    "list|10": [
      {"id|+1": 1, "name": "@FIRST"}
    ]
  },
  "statusCode": 200,
  "header": {
    "content-type": "application/json; charset=utf-8"
  }
}

模板编辑器下方会根据模板实时生成数据预览,方便确认模板的正确性。

重新调用上面的代码,将返回:

![]https://imgconvert.csdnimg.cn/aHR0cHM6Ly9yZXMud3gucXEuY29tL3d4ZG9jL2Rpc3QvYXNzZXRzL2ltZy90ZW1wbGF0ZV9yZXN1bHQuNWMwNDc5NDUucG5n?x-oss-process=image/format,png)

规则导入导出
当需要与项目中其他成员共享规则时,可以在 Mock 中导出规则配置,再把配置文件发送给其他成员导入即可,操作入口如图:
在这里插入图片描述

注意事项

  • 规则匹配中的正则表达式均不区分大小写;
  • wx.request中暂时无法使用dataType参数进行匹配;
  • 在匹配规则中的参数名中,“.”属于特殊字符,如果要匹配的参数名中包含“.”将无法匹配成功,例如
  {
    "propName": {
      "key": "value",
      // 通过 propName.namespace1.key 无法匹配到此参数,应尽量避免这种情况。
      "namespace1.key": "value1"
    }
  }
  • 蓝牙模块相关的 API,实际调用中需要先调用wx.openBluetoothAdapter进行初始化,但是在 Mock
    的规则命中后将没有这些限制,需要注意
  • getBLEDeviceServices
  • getBLEDeviceCharacteristics
  • createBLEConnection
  • closeBLEConnection
  • writeBLECharacteristicValue
  • startBluetoothDevicesDiscovery
  • stopBluetoothDevicesDiscovery
  • getConnectedBluetoothDevices
  • getBluetoothDevices
  • getBluetoothAdapterState
  • closeBluetoothAdapter
  • 目前支持Mock 的 API 列表:
  • request
  • downloadFile
  • getLocation
  • checkSession
  • requestPayment
  • startSoterAuthentication
  • checkIsSupportSoterAuthentication
  • checkIsSoterEnrolledInDevice
  • startBeaconDiscovery
  • stopBeaconDiscovery
  • getBeacons
  • startWifi
  • stopWifi
  • getConnectedWifi
  • connectWifi
  • getBLEDeviceServices
  • getBLEDeviceCharacteristics
  • createBLEConnection
  • closeBLEConnection
  • writeBLECharacteristicValue
  • startBluetoothDevicesDiscovery
  • stopBluetoothDevicesDiscovery
  • openBluetoothAdapter
  • getConnectedBluetoothDevices
  • getBluetoothDevices
  • getBluetoothAdapterState
  • closeBluetoothAdapter
  • stopHCE
  • startHCE
  • sendHCEMessage
  • getHCEState
  • setBackgroundFetchToken
  • getBackgroundFetchToken
  • getBackgroundFetchData
  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值