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は、package.json
内のjest
プロパティに追加のオプションを通知することなく、ESモジュールからCommonJSへのコンパイルを自動的に有効にします。
上記の解決策は私にはうまくいきませんでした。私はこれで解決することができました:
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を使用しています。
参照 。