玩笑测试失败:TypeError:window.matchMedia 不是函数

2024-02-24

这是我第一次前端测试经历。在这个项目中,我使用 Jest 快照测试并收到错误TypeError: window.matchMedia is not a function在我的组件内。

我浏览了 Jest 文档,找到了“手动模拟”部分,但我还不知道如何做到这一点。


Jest 文档现在有一个“官方”解决方法:

Object.defineProperty(window, 'matchMedia', {
  writable: true,
  value: jest.fn().mockImplementation(query => ({
    matches: false,
    media: query,
    onchange: null,
    addListener: jest.fn(), // Deprecated
    removeListener: jest.fn(), // Deprecated
    addEventListener: jest.fn(),
    removeEventListener: jest.fn(),
    dispatchEvent: jest.fn(),
  })),
});

JSDOM 中未实现的模拟方法 https://jestjs.io/docs/en/manual-mocks#mocking-methods-which-are-not-implemented-in-jsdom

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

玩笑测试失败:TypeError:window.matchMedia 不是函数 的相关文章