此问题在此处已有答案:
Does Jest support ES6 import/export?(13个回答)
一年前关闭。
如何使用Jest测试ES6模块
范例:
sum.js
const sum = function (a, b) {
return a + b;
}
export default sum;
字符串
sum.test.js
import sum from './sum';
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
型
2条答案
按热度按时间vsikbqxv1#
[十二月2023更新]
现在您可以原生支持ES6和ESM(ECMAScript模块):
**步骤1:**防止Jest尝试将ESM代码转换为CommonJS,更新Jest配置(下面的
package.json
示例):字符串
**第二步:**为了能够在没有外部Transformer(例如babel)的情况下解析ES模块,使用
--experimental-vm-modules
标志启动Node。这可以通过改变npm“test”脚本启动Jest的方式来完成(同样在package.json
内部):型
就是这样。:)
如果您只是为了测试而使用Transformer包,您甚至可以卸载它们。
[过时的答案,只是为了历史的目的]
唯一的要求是将
test
环境配置为Babel,并添加es2015 transform插件:第一步:
将您的
test
环境添加到项目根目录下的.babelrc
:型
第二步:
安装es2015 transform插件:
型
**就是这样。**Jest将自动启用从ES模块到CommonJS的编译,而无需通知
package.json
中jest
属性的其他选项。pn9klfpd2#
上面的解决方案对我不起作用。我可以用下面的方法解决:
字符串
数据库配置js
型
我用的是typescript
参考