我正在尝试测试一个根据窗口对象中存在的值返回值的类。
window.test = 123;
我想将window对象的test属性模拟为123值,以便能够正确测试。
我尝试使用Object.defineProperty
,而是使用global,但是似乎没有任何效果。似乎是一个琐碎的问题,但无法在Google或其他地方找到答案。请指教。
答案 0 :(得分:0)
在window
存在的情况下(即Jest与JSDOM一起运行,默认情况下已完成),
beforeEach(() => {
window.test = 123;
});
afterEach(() => {
delete window.test;
});
如果不存在,则为:
beforeEach(() => {
global.window = { test: 123 };
});
afterEach(() => {
delete global.window;
});
根据是否在其他地方使用window
,将其备份到beforeEach
中的临时变量并恢复到afterEach
中可能是有益的。