如何使用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);
});
答案 0 :(得分:8)
唯一的要求是将您的test
环境配置为Babel,并添加es2015转换插件:
第1步:
将您的test
环境添加到项目根目录中的.babelrc
:
{
"env": {
"test": {
"plugins": ["transform-es2015-modules-commonjs"]
}
}
}
第2步:
安装es2015转换插件:
npm install --save-dev babel-plugin-transform-es2015-modules-commonjs
就是这样。 Jest将自动启用从ES模块到CommonJS的编译,而无需通知jest
内package.json
属性的其他选项。
答案 1 :(得分:0)
上述解决方案不适用于我。我能够解决这个问题:
yarn add --dev babel-jest @babel/core @babel/preset-env @babel/preset-typescript
babel.config.js
module.exports = {
presets: [
[
'@babel/preset-env',
{
targets: {
node: 'current',
},
},
],
'@babel/preset-typescript'
],
};
我正在使用打字稿的地方。