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

React Testing Library模拟具名类组件导入报'prototype'未定义错误

报错原因

你将类组件C mock为了一个普通返回空字符串的函数,React渲染类组件时需要读取构造函数的prototype属性获取继承自React.Component的相关属性与方法,普通函数不具备类组件对应的原型结构,因此触发该错误。
此外你当前的jest.mock代码存在语法问题,末尾缺少一个闭合的右括号。

修复方案
  • 场景1:仅需要让组件正常渲染,不需要验证C组件的调用逻辑
    直接将C mock为合法的函数式组件即可:
jest.mock('<PATH_TO_C.JS>', () => ({
  C: jest.fn(() => null)
}))
  • 场景2:需要验证C组件的实例化、参数传递或者内部方法调用
    模拟为继承React.Component的mock类即可:
// 可以自定义mock的实例方法、render返回值满足测试需求
const MockC = jest.fn().mockImplementation(() => ({
  render: () => null,
  // 需要 mock 的其他实例方法写在这里
}))
jest.mock('<PATH_TO_C.JS>', () => ({
  C: MockC
}))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:45:00