我有一个在节点和浏览器上运行的函数,我想用jest测试:
const myFn = () => {
if(typeof window !== 'object'){
return 1;
}
return 2;
}
我如何能够将全局窗口对象设置为undefined,以测试节点分支,并返回1。
EG
test('myTest', ()=> {
global.window = undefined;
expect(myFn()).toEqual(1); // result: 2
});
我在这里尝试了这些建议没有成功:qazxsw poi
您可以尝试使用自v20.0.0开始提供的Mocking globals in Jest docblock来更改不同测试的环境。默认情况下,它使用@jest-environment
,但您可以将其更改为使用jsdom
。以下是他们的文档摘录:
node
参考:/**
* @jest-environment jsdom
*/
test('use jsdom in this test file', () => {
const element = document.createElement('div');
expect(element).not.toBeNull();
});