You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ReactJS项目引入react-owl-carousel导致Jest测试报错求助

解决React项目引入react-owl-carousel导致Jest测试报错的问题

问题原因

你遇到的TypeError: Cannot read properties of undefined (reading 'fn')错误,本质是react-owl-carousel依赖jQuery,但Jest测试环境没有全局暴露jQuery。虽然你在index.html中添加了jQuery的script标签,但Jest运行在Node.js环境中,不会加载浏览器端的HTML资源,所以依然找不到jQuery。

解决方案

方案1:在Jest测试环境中全局注入jQuery

  1. 先安装jQuery依赖(如果还没装):

    npm install jquery --save-dev
    # 或者用yarn
    yarn add jquery -D
    
  2. 配置Jest的初始化文件:

    • 如果项目里没有src/setupTests.js,新建一个并添加:
      import $ from 'jquery';
      global.$ = global.jQuery = $;
      
    • 在package.json中添加Jest配置(已有jest项则直接修改):
      "jest": {
        "setupFiles": ["./src/setupTests.js"]
      }
      
    • 若项目使用独立的jest.config.js,则修改该文件:
      module.exports = {
        setupFiles: ['<rootDir>/src/setupTests.js']
      };
      

方案2:Mock react-owl-carousel组件(适合无需测试carousel功能的场景)

如果测试不需要验证carousel的具体交互,只是想测试组件的其他部分,可以直接mock整个carousel组件,跳过真实依赖的加载逻辑。在App.test.js顶部添加:

jest.mock('react-owl-carousel', () => () => <div>Mocked Carousel</div>);

内容的提问来源于stack exchange,提问作者Ravi Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 01:45:03