gpt4 book ai didi

javascript - React + enzyme 单元测试,无法访问 window.addEventListener

转载 作者:搜寻专家 更新时间:2023-11-01 04:59:30 24 4
gpt4 key购买 nike

我设置了一些单元测试,使用带有 jsdom 配置的 enzyme 的浅层方法进行测试。在我遇到一个正在使用 window.addEventListener 的组件之前,它一直运行良好。单元测试现在返回错误

TypeError: window.addEventListener is not a function

我像这样为 JSdom 设置了我的测试助手

import jsdom from 'jsdom';

...

global.document = jsdom.jsdom('<!doctype html><html><body></body></html>');
global.window = document.defaultView;
global.navigator = {userAgent: 'node.js'};

这工作正常,然后我升级到 enzyme 3.x,现在我收到了这个错误。

我想知道我现在是否需要手动模拟 addEventListener,或者我在访问它时做错了什么。

最佳答案

//in test file ...

it("should render KeyStrokeHandler", () => {
// Set-up event listener mock
const map = {};
window.addEventListener = jest.fn((event, callback) => {
map[event] = callback;
});

// Mount component that has set callback for keydown event
const wrapper = mount(<KeyStrokeHandler />);

// Trigger keydown event
map.keydown({ key: 'Enter' });
});

...

关于javascript - React + enzyme 单元测试,无法访问 window.addEventListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47637607/

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