小编mos*_*lem的帖子

15
推荐指数
5
解决办法
8万
查看次数

如何在玩笑中将模拟函数恢复为原始值?

我在测试中模拟了一个类的静态函数,但我会影响其他测试。由于静态函数的性质,代码是:

  test('A', async () => {
    expect.assertions(2);
    let mockRemoveInstance = jest.fn(() => true);
    let mockGetInstance = jest.fn(() => true);
    User.removeInstance = mockRemoveInstance;
    User.getInstance = mockGetInstance;
    await User.getNewInstance();
    expect(mockRemoveInstance).toHaveBeenCalled();
    expect(mockGetInstance).toHaveBeenCalled();
  });

  test('B', () => {
    let mockRemoveInstance = jest.fn();
    const Singletonizer = require('../utilities/Singletonizer');
    Singletonizer.removeInstance = mockRemoveInstance;
    User.removeInstance();
    expect.hasAssertions();
    expect(mockRemoveInstance).toHaveBeenCalled();
  });
Run Code Online (Sandbox Code Playgroud)

B测试中User.removeInstance()仍然被测试嘲笑A,如何将输入重置removeInstance()为其类定义的原始函数?

unit-testing jestjs

5
推荐指数
1
解决办法
5353
查看次数

标签 统计

jestjs ×1

unit-testing ×1

woocommerce ×1

wordpress ×1