我正在使用 Jest + enzyme 设置进行测试。如果定义了窗口,我有一个有条件地渲染某些内容的函数。
在我的测试套件中,我试图达到第二种情况,即未定义窗口,但我无法强制它。
it('makes something when window is not defined', () => { window = undefined; expect(myFunction()).toEqual(thisWhatIWantOnUndefinedWinow); });
但即使我强制窗口未定义,它也达不到预期的情况,窗口始终是窗口(jsdom?)
这是我的 Jest 设置的问题还是我应该以其他方式处理这个问题?
最佳答案
我可以使用以下模式测试 window
未定义的场景。它允许您在同一文件中运行带或不带window
的测试。不需要在文件顶部添加 @jest-environment 节点
。
describe('when window is undefined', () => {
const { window } = global;
beforeAll(() => {
// @ts-ignore
delete global.window;
});
afterAll(() => {
global.window = window;
});
it('runs without error', () => {
...
});
});
关于reactjs - Jest.js 强制窗口未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51425746/