【发布时间】:2022-05-06 17:47:46
【问题描述】:
我正在将一个项目从 jest 版本 26 更新到 jest 版本 27。作为更新的一部分,我不得不从 setTimeout 上的断言切换到 jest.spyOn(window, "setTimeout") 上的断言。
我想全局定义 spy 并在每次测试之前将其重置,例如:
const timeoutSpy = jest.spyOn(window, "setTimeout");
beforeEach(() => {
jest.resetAllMocks();
});
此代码没有按我的预期工作。 expect(timeoutSpy).toHaveBeenCalledTimes(n) 的断言因预期 (n) 和接收 (0) 呼叫数不匹配而失败。
在每次测试之前重置全局定义的 timeoutSpy 的正确方法是什么?
谢谢。
【问题讨论】:
标签: unit-testing jestjs mocking