jest单元测试-更多

jest单元测试之更多

一、jest.fn

jest中的函数,具有跟踪性,可以测试是否被调用?调用几次?入参是否是期望值?

it("should jest fn", () => {
    const jestFn = jest.fn((val) => {
      return val;
    });
    const pramas = 1;
    const res = jestFn(pramas);
    expect(res).toBe(1);
    expect(jestFn).toHaveBeenCalled();
    expect(jestFn).toHaveBeenCalledTimes(1);
    expect(jestFn).toHaveBeenCalledWith(pramas);
  });
二、jest.mock

jest中的mock函数,当不会真的去发起函数调用,会使用定义的函数进行mock返回

it("should jest.mock", () => {
    jest.mock("../src/06mock", () => {
      return 5;
    });
    const mockFn = require("../src/06mock");
    expect(mockFn).toBe(5);
  });
三、jest.spyOn

jest.spyOn()方法同样创建一个mock函数,但是该mock函数不仅能够捕获函数的调用情况,还可以正常的执行被spy的函数。实际上,jest.spyOn()jest.fn()的语法糖,它创建了一个和被spy的函数具有相同内部代码的mock函数。

  it("should jest.spyOn", () => {
    const obj = require("../src/07spyOn");
    const spy = jest.spyOn(obj.default, "get");
    expect(spy()).toBe("牛");
    expect(spy).toHaveBeenCalled();
  });

  it("should jest.spyOn", () => {
    const obj = require("../src/07spyOn");
    const spy = jest.spyOn(obj.default, "get").mockReturnValue("好牛");
    expect(spy()).toBe("好牛");
    expect(spy).toHaveBeenCalled();
  });
四、更多
  1. 模拟延时

  2. 模拟class

  3. 模拟webpack,puppeteer等

未完待续...

代码参考github地址

1、jest单元测试-基础

2、jest单元测试-匹配器

3、jest单元测试-作用域

4、jest单元测试-更多

原创不易,自由转载,保留出处

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值