如何以及何时重置使用jest.fn创建的Jest模拟

时间:2018-08-29 07:13:10

标签: reactjs jestjs

在测试中,我经常有一个设置,在beforeEach中,我为API对象上的单个函数创建了模拟程序。

  beforeEach(() => {
    store = mockStore({
      dev: {
        settings: {
          useStaticSchemasMocks: false,
        },
      },
    });
    MGZManager.call = jest.fn(() => new Promise(resolve => resolve(schemas)));
  });

我想知道:重置模拟(例如MGZManager.call)的正确方法是什么,以便在每次进行新测试时,所有模块/函数/等都还原为原始实现。还是在这种情况下会自动重置?

我看到了这种方法:

  afterEach(() => {
    jest.restoreAllMocks();
  });

是可行的方法,但仅适用于jest.spyOn的模拟,不适用于MGZManager.call = jest.fn这样的分配

0 个答案:

没有答案