从Mocha测试导入类时出现TypeError: ... is not a constructor错误
解决 "TypeError: TaxCalculation is not a constructor" 问题
这个错误通常是模块导出与导入方式不匹配导致的,以下是几种可行的解决方法:
方法1:适配ES模块配置
查看项目根目录的package.json,如果存在"type": "module"配置项,说明项目默认将.js文件视为ES模块。此时用require()导入时,需要通过.default属性获取类:
const TaxCalculation = require("../app/taxCalculator").default;
方法2:统一使用CommonJS模块
如果不需要ES模块特性,删除package.json中的"type": "module"配置。此时所有.js文件会被当作CommonJS模块处理,你原本的导入代码即可正常运行:
const TaxCalculation = require("../app/taxCalculator");
方法3:全量切换到ES模块语法
若想统一使用ES模块规范,修改两个文件的代码:
- 在
app/taxCalculator.js中替换导出语句:export default TaxCalculation; - 在
test/taxCalculator.js中替换导入语句:import TaxCalculation from "../app/taxCalculator.js"; import { expect } from "chai";
确保package.json保留"type": "module",且使用的Mocha版本支持ES模块(较新版本Mocha已原生支持)。
内容的提问来源于stack exchange,提问作者DeejUK
相关产品推荐
相关产品推荐

