概要
JavaScriptのテストフレームワークにJestを検討して試していたら、JestがデフォルトではES2015に対応しておらず、Node.jsを使っていないJavaScriptで使えないことに気づきました。
具体的にはexport/import文に対応していないのが問題でした。順番が前後してしまいますが、設定で対応できるようなので、先に方法を記録します。Jest v29.5+Node.js v18.10.0で確認しました。
「JestをES6化してimport/exportを使う方法」の内容を参考にしました。
内容
まず、Jestのサンプルコード (Getting Started · Jest) は以下のようになっています。
// sum.js
function sum(a, b) {
return a + b;
}
module.exports = sum;
// sum.test.js
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
ここでES2015のexport/import文ではなく、module.exportsとrequireでモジュールのエクスポート・インポートを行っています。
JestはNode.jsの標準に準拠していて、CommonJSのAPIを基本としているためのようです。
このままだと、ES2015で追加されたexport/import文が使えません。
対処方法が「ECMAScript Modules · Jest」にあります。
詳細プロフィール。SNS: X Twitter/GS=gnusocialjp@gnusocial.jp/WP=gnusocialjp@web.gnusocial.jp。2022-07-17からgnusocial.jpとweb.gnusocial.jpのサイトを運営しています。WordPressで分散SNSに参加しています。このアカウントの投稿に返信すると、サイトのコメント欄にも反映されます。
Comments