chai
最新版本5.1.2
移至ESModule。是否可以在 CommonJS 文件中继续使用它? chai
只是我项目中的一个开发依赖项,用于单元测试。我不想将我的模块升级到 ESModule。
我尝试了下面的代码:
const expect = (...args) => import('chai').then((mod) => mod.expect(...args));
expect ('true').to.equal('false');
它会报告以下错误:
TypeError: Cannot read properties of undefined (reading 'equal')
下面的代码有效,但我不想为每个期望添加此代码。我有很多期望语句。
import('chai').then(chai => {
expect = chai.expect;
expect('true').to.equal('false');
});
另一个选项是添加如下所示的行
const expectEqual = (arg1, arg2) => import('chai').then((mod) => mod.expect(arg1).to.equal(arg2));
这意味着我需要为所有类型的期望添加声明。
expect.to.be
、expect.to.deep.equal
...
CommonJS中有没有更好的动态导入chai的方法?
在你的 commonJS 模块中尝试类似的事情:
const importExpect = async () => await import('chai').then((chai) => chai.expect);
(async () => {
const expect = await importExpect()
// your old tests
expect('true').to.equal('true');
// your old tests
})()