gpt4 book ai didi

javascript - Jest mock global.window

转载 作者:可可西里 更新时间:2023-11-01 02:23:32 29 4
gpt4 key购买 nike

我有一个函数,它在节点和浏览器中都运行,我想 Jest 测试它:

const myFn = () => {
if(typeof window !== 'object'){
return 1;
}
return 2;
}

如何将全局窗口对象设置为未定义,以测试节点分支,并返回 1。

例如

  test('myTest', ()=> {
global.window = undefined;
expect(myFn()).toEqual(1); // result: 2
});

我尝试了这里的建议但没有成功: Mocking globals in Jest

最佳答案

您可以尝试使用自 v20.0.0 起可用的 @jest-environment 文档 block 来更改不同测试的环境。默认情况下它使用 jsdom,但您可以将其更改为使用 node。以下是他们文档的摘录:

/**
* @jest-environment jsdom
*/

test('use jsdom in this test file', () => {
const element = document.createElement('div');
expect(element).not.toBeNull();
});

引用:https://facebook.github.io/jest/docs/en/configuration.html#testenvironment-string

关于javascript - Jest mock global.window,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48691604/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com