useFakeTimers模拟定时器执行,不用等待了
export const getDataCallback = fn => {
setTimeout(() => {
fn({name: 'callback'})
}, 1000);
}
useFakeTimers
import { getDataCallback } from '../index'
jest.useFakeTimers()
it('测试回调函数', () => {
// mock函数可以记录状态
let fn = jest.fn()
// 检查mock函数是否被调用了
getDataCallback(fn)
// 把所有的定时器执行
jest.runAllTimers()
// 这里判断是否调用
expect(fn).toBeCalled()
})
对于setInterval一般会只进行一次调用
export const getDataCallback = fn => {
setInterval(() => {
fn({name: 'callback'})
}, 1000);
}
import { getDataCallback } from '../index'
jest.useFakeTimers()
it('测试回调函数', () => {
// mock函数可以记录状态
let fn = jest.fn()
// 检查mock函数是否被调用了
getDataCallback(fn)
// 把所有的定时器执行
jest.runOnlyPendingTimers()
// 这里判断是否调用
expect(fn).toBeCalled()
})