美文网首页
Jest Mocks入门

Jest Mocks入门

作者: One_Hund | 来源:发表于2018-03-07 13:50 被阅读0次

一、介绍

  • Mocks可以捕获对函数的调用(以下用法一)
    • 使用mock function,可以查看函数的调用次数,以及入参情况
  • Mocks可以擦除函数的实际实现来测试代码之间的链接(以下用法二)
    • manual_mocks用来mock依赖的模块,放置在相应__mocks__的目录下

二、用法

(一)Mock Function

  • 主要使用let mockFunc = jest.fn()来模拟function(),可测试调用的次数传入的参数
function forEach(items,callback) {
  for(let index = 0;index<items.length;index++){
    callback(items[index])
  }
}
test('forEach',()=>{
  // mockFunc模拟函数
  let mockFunc = jest.fn()

  forEach([1,2,3],mockFunc)
  // 调用了多少次
  expect(mockFunc.mock.calls.length).toBe(3)
   // 参数
  expect(mockFunc.mock.calls[0]).toEqual([1])
  expect(mockFunc.mock.calls[0][0]).toBe(1)
})
  • 使用npx jest测试执行,结果为passed

(二)manual_mock

  • 用于手动模拟测试模块,覆盖模块依赖。如无法调用AjaxjQuery进行测试的情况下,自己手动写一个有相同逻辑的"Ajax""jQuery"进行模块覆盖,以此达到正常测试的目的

  • 用法:应在相应的目录下新建__mock__文件夹,并在文件夹里新建manual_mock.js

    • 若模拟本地模块,则在同目录下新建__mock__文件夹,并在文件夹里新建manual_mock.js
    • 若模拟node_modules文件夹里的模块,则在node_modules文件夹相应目录(一般是根目录)下新建__mock__文件夹,并在文件夹里新建manual_mock.js。例如本文章新建一个jquery.js为例。
  • /__mock__/jquery.js

module.exports = (selector) => document.querySelector(selector)
  • /test/mocks.js
jest.mock('jquery')
const $ = require('jquery')

test('jquery',()=>{
  document.body.innerHTML = '<div id="jquery">jquery</div>'
  expect($('#jquery').innerHTML).toBe('jquery')
})
  • 使用npx jest测试执行,结果为passed

相关文章

  • Jest Mocks入门

    一、介绍 Mocks可以捕获对函数的调用(以下用法一)使用mock function,可以查看函数的调用次数,以及...

  • jest 入门笔记

    jest 入门笔记 Jest is a delightful JavaScript Testing Framewo...

  • TS+Jest 最简开始

    Jest[https://jestjs.io/] 是当下最主流的前端测试框架;对于初学者,Jest 配置入门并不算...

  • jest入门(一)

    1安装依赖包: 2修改package.json文件 3.在项目里创建需要测试的文件sum.js 4 创建sum.j...

  • Jest初识

    Jest入门 注意: 下载babel编译器核心文件 npm i @babel/core@7.4.5 @babel/...

  • ionic native mocks

    Ionic Native Mocks | The Ionic Blog

  • ionic3 自定义 ionic native mock

    Customizing Ionic Native Mocks | Prototype A

  • 001 前端项目中加入jest , 并支持ts

    1 加入 jest ts-jest @types/jest jest 为测试框架tes-jest 用于转换t...

  • Jest前端测试入门

    使用匹配器 精确匹配toBe匹配使用===全等匹配 如果需要检查对象或者数组需要使用toEqual 真值匹配 to...

  • Jest初步入门

    一、语法 expect(实际变量).toBe(期望值);普通匹配器expect({a:1}).toBe({a:1}...

网友评论

      本文标题:Jest Mocks入门

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