使用Enzyme 3时遇内部错误:配置的适配器未继承EnzymeAdapter基类
解决Enzyme 3中“configured enzyme adapter did not inherit from the EnzymeAdapter base class”错误
我之前从Enzyme 2升级到3时也踩过这个一模一样的坑,这俩版本在适配器规则上有不小的变化,咱们一步步来搞定这个问题:
错误原因分析
Enzyme 3对适配器的规范做了严格升级,要求所有适配器必须继承官方的EnzymeAdapter基类才能正常工作。你当前用的enzyme-adapter-react-15是Enzyme 2时代的适配包,它完全没实现Enzyme 3要求的基类继承逻辑,所以才会抛出这个内部验证错误。
解决方案步骤
替换为Enzyme 3兼容的适配包
先卸载旧的不兼容适配器:npm uninstall enzyme-adapter-react-15根据你的React 15子版本,安装对应适配包:
- 如果你的React是15.4及以上版本,安装这个:
npm install --save-dev enzyme-adapter-react-15.4 - 如果是React 15.0-15.3,安装
enzyme-adapter-react-15的3.x兼容版本(更推荐升级React到15.4+):npm install --save-dev enzyme-adapter-react-15@3
- 如果你的React是15.4及以上版本,安装这个:
更新enzyme-setup.js配置
修改适配器的引入路径,对应新安装的包:const Enzyme = require('enzyme'); // 这里换成新的适配器包名 const Adapter = require('enzyme-adapter-react-15.4'); Enzyme.configure({adapter: new Adapter()});额外排查点
- 确认你的Enzyme版本确实是3.x,查看
package.json里的enzyme字段,如果还是2.x,执行升级:npm install --save-dev enzyme@3 - 如果以上步骤后仍报错,大概率是缓存问题,删除依赖目录和锁文件后重新安装:
rm -rf node_modules package-lock.json npm install
- 确认你的Enzyme版本确实是3.x,查看
内容的提问来源于stack exchange,提问作者Eran Shabi
相关产品推荐
相关产品推荐

