如何使用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);
});
如何使用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);
});
唯一的要求是将您的test
环境配置为Babel,并添加es2015转换插件:
步骤1:
在项目根目录下的.babelrc
中添加您的test
环境:
{
"env": {
"test": {
"plugins": ["@babel/plugin-transform-modules-commonjs"]
}
}
}
步骤2:
安装es2015转换插件:
npm install --save-dev @babel/plugin-transform-modules-commonjs
就是这样。 Jest将自动启用从ES模块到CommonJS的编译,无需在package.json
中的jest
属性中提供附加选项。
以上的解决方案对我没有起作用。我用以下方法成功解决:
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'
],
};
我在使用typescript。
参考资料。