jest也是微信官方推荐的.
最简单的方式: jest安装后, 在目录下运行jest就可以. 它会搜索当前目录和所有子目录,并运行*.test.js结尾的所有测试,并汇总.
对于微信中的一些全局模块如wx, 需要mock. 在测试目录下建立__mocks__/目录, 所有要mock的都放在这儿. 如放个wx.js
*.test.js中, 对全局的wx赋值global.wx=require('__mocks__/wx.js').
wx.js使用module.exports导出即可.
除了自己直接写mock模拟的函数外(如写一个wx.cloud.database = function mockFunc(){}的mock函数), 还可以用jest的mock函数const mockFunc = jest.fn(函数体);wx.cloud.database = mockFunc. 这样被mock的函数就会自带统计和记录功能.
如:

  • 统计mock函数被调用的次数 mockFunc.mock.calls.length
  • mock函数第n次调用时的第x个参数值 mockFunc.mock.calls[n][x]
  • mock函数第n次调用的返回结果 mockFunc.mock.result[n].value
  • mock函数最后一次调用的第一个参数 mockFunc.mock.lastCall[0]
  • 对class的mock, 同样可以使用new const myMock1 = jest.fn();const a = new myMock1();
  • mock函数定义每一次的返回值,并且尅循环调用 mockFunc.mockReturnValueOnce(10).mockReturnValueOnce('x').mockReturnValue(true)
  • mock模块的异步Promise返回值
import axios from 'axios';
jest.mock('axios'); 
const users = [{name: 'Bob'}];
const resp = {data: users};
axios.get.mockResolvedValue(resp);
  • mock一个模块的部分函数和值

标签: none 阅读量: 347

添加新评论