我有以下一段代码。
window.requestAnimationFrame(() => {
process("postProcess");
window.clearTimeout();
});
当我为此编写单元测试时,我可以断言 requestAnimationFrame 被调用但不能在 process 函数和 clearTimeout 上,因为 requestAnimationFrame 是 jest.fn()。 unitTesting 时如何调用实际的回调函数?
答案 0 :(得分:0)
您已经评论说您已经能够模拟 requestAnimationFrame 并且可以断言它被调用了。这实际上让你得到答案。
将您的玩笑模拟从 jest.fn()
扩展到立即调用作为参数传递给它的回调的实现。
requestAnimationFrame.mockImplementation((callback) => callback())
因此,当您的测试运行时,process
和 window.clearTimeout
将立即被调用;只要您还在嘲笑或监视这些函数,您就可以断言这些函数也被调用了。