window.location.assign() 未在 Jest JSDom 中实现

问题描述 投票:0回答:2

我有这个功能

 window.location.assign(url)

jsdom 中不存在...所以在我的测试中出现错误

有人提到了存根这个函数的可能性(使用Sinon) 参见jsdom问题

 sinon.stub(window.location, 'assign');
 expect(window.location.assign).to.have.been.calledWith(url);

如何使用 Jest 复制它? (因为它不存在,我不能使用间谍......它必须被嘲笑)

感谢反馈

ecmascript-6 jestjs sinon
2个回答
2
投票

您可以提供您的自定义实现

jest.spyOn(window.location, 'assign').mockImplementation(url => console.log(url))

0
投票
Object.defineProperty(window, 'location', { writable: true, value: { assign: jest.fn() } });

宣传@Sushil Kumar 所说的内容。 ^ 这是适用于笑话 27、28、29 的答案。

© www.soinside.com 2019 - 2024. All rights reserved.