JestのES2015対応設定

develop/JavaScript
概要

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」にあります。

この投稿は Gold and Silver の会員限定 (月額Free=0円、Silver=1100円、Gold=3300円) です。記録が目的であり、元投稿の削除・炎上回避、運営費・GNU socialの開発資金などのため会員限定にしています。

このサイトでは分散SNSの話題を1年以上毎日更新しており、情報量、更新頻度は日本一だと思います。最新動向・詳細情報を把握したい人は、会員登録/ログインをお願いします (About Member)。

Comments

Copied title and URL