美文网首页
10|mock timers的使用

10|mock timers的使用

作者: 雪燃归来 | 来源:发表于2020-05-24 15:17 被阅读0次

一、mock timers的使用

// timer.js
export const timer = (callback) => {
    setTimeout(() => {
        callback()
    },3000)
}

// timer.test.js
import { timer } from './timer'
jest.useFakeTimers();
test('timer 测试', () => {
    const fn = jest.fn();
    timer(fn);
    jest.runAllTimers();
    expect(fn).toHaveBeenCalledTimes(1);
})

二、runOnlyPendingTimers 运行只处于队列中任务

//timer
export const timer = (callback) => {
    setTimeout(() => {
        callback()
        setTimeout(() => {
            callback()
        })
    },3000)
}

//timer.test.js
import { timer } from './timer'
jest.useFakeTimers();
test('timer 测试', () => {
    const fn = jest.fn();
    timer(fn);
    jest.runOnlyPendingTimers();
    expect(fn).toHaveBeenCalledTimes(1);
})

三、advanceTimersByTime 时间快进

// timer.js
export const timer = (callback) => {
    setTimeout(() => {
        callback()
        setTimeout(() => {
            callback()
        },3000)
    },3000)
}

// timer.test.js
import { timer } from './timer'
jest.useFakeTimers();
test('timer 测试', () => {
    const fn = jest.fn();
    timer(fn);
    jest.advanceTimersByTime(3000);
    expect(fn).toHaveBeenCalledTimes(1);
})

四、排除各测试之间的干扰

import { timer } from './timer'
beforeEach(() => {
    jest.useFakeTimers()
})
test('timer 测试', () => {
    const fn = jest.fn();
    timer(fn);
    jest.advanceTimersByTime(3000);
    expect(fn).toHaveBeenCalledTimes(1);
    jest.advanceTimersByTime(3000);
    expect(fn).toHaveBeenCalledTimes(2);
})

test('timer1 测试', () => {
    const fn = jest.fn();
    timer(fn);
    jest.advanceTimersByTime(3000);
    expect(fn).toHaveBeenCalledTimes(1);
    jest.advanceTimersByTime(3000);
    expect(fn).toHaveBeenCalledTimes(2);
})

相关文章

  • 10|mock timers的使用

    一、mock timers的使用 二、runOnlyPendingTimers 运行只处于队列中任务 三、adva...

  • mock的使用demo+常用模板

    控制台可以直接使用MockMock.mock({"string|1-10": "★"}) mock的demo 安装...

  • 使用 Mockjs 模拟数据

    Mock 数据 Mock 在 vue 中的使用 使用npm下载mock 2.使用 mock 在 mock 文件夹下...

  • iOS Timers使用

    timer(定时器)提供了一种方式去延迟执行任务和周期性执行任务. timer会一直等待,直到具体的时间间隔到达,...

  • mock语法

    mock使用方法 Mock.mock( rurl?, rtype?, template|function( opt...

  • Mockito初级学习

    标签:mockito 使用Mockito来Mock对象 有两种方法来mock对象,1)使用静态方法: mock()...

  • 【图文详解】如何mock数据

    目录 如何在本地通过静态服务器mock数据 如何使用Easy Mock 如何使用githubpages mock数...

  • 唯有自律·方得自由day29

    89【工具】Printer Pro无线打印软件的使用。 90【工具】Timers倒计时软件的使用。

  • 初始 Mock

    关于Mock 一. 在Vue中使用Mock 安装Mock npm i mockjs --save-dev 在 /...

  • mockjs基本使用

    1、安装 2、在项目中新建mock.js文件 3、编辑mock.js 使用API:Mock.mock( url, ...

网友评论

      本文标题:10|mock timers的使用

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