目前我有用于单元测试的代码
mockWindow = {
document: {
createElement: jest.fn().mockReturnValue(div),
head: {
appendChild: jest.fn(),
},
body: {
appendChild: jest.fn(),
},
removeEventListener: jest.fn(),
},
addEventListener: jest.fn(),
removeEventListener: jest.fn(),
};
jest.spyOn(window, 'open').mockReturnValue(mockWindow);
现在,我将使用另一个参数将对window.open
的另一个调用添加到我的代码库中:
window.open('', 'new_target', 'width=1000,height=500')
当第二个window.open
被调用时,我希望能够返回一个不同的值。无论如何,我是否可以要求spyOn
根据参数返回不同的值?
我尝试了jest.spyOn(window, 'open', '', 'new_target')
,但收到了此错误Error:(47, 5) TS2554: Expected 2-3 arguments, but got 4.
。第三个参数应该用于指定访问类型(即get vs set)