web-dev-qa-db-ja.com

JestでES6モジュールをテストする

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:

プロジェクトのルートの.babelrctest環境を追加します。

{
  "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を使用しています。

参照

0
GarouDan