准备条件
以第1节教程的创建的目录和代码为基础进行讲解。如果没有看过第1节教程,请关注我,查看以往该系列的文章
这节教程主要讲解jest中的mock函数,将第1节的代码复制一份,并且把index.js
和index.test.js
文件内容全部清空
mock函数可以在你测试实际代码的时候,捕获对函数的调用以及参数和返回值等,也可以用于模拟一些数据
安装axios
npm run axios --save
在 index.js
中写入一些待测试方法
import axios from 'axios'
export function callbackFun(fn) {
return fn()
}
export function getData() {
// 这里接口路径随便写一个就可以
return axios.get('/api').then(res => res.data)
}
使用mock
在 index.test.js
中写入1个测试实例
import {
callbackFun, getData } from './index'
test('测试 callbackFun,使用mockReturnValueOnce设置返回值', () => {
let fun = jest.fn()
fun.mockReturnValueOnce('123') // 设置调用函数1次的返回值
fun.mockReturnValueOnce('456') // 设置调用函数2次的返回值
fun.mockReturnValue('666') //设置每次调用函数的值都为666
expect(callbackFun(fun)).toBe('123')
expect(callbackFun(fun)).