Habit modulation #2

というわけでテストを書く。

テストは mocha に実行させる。一方、桃は esm の文法に基づいてモジュールを分けてある。ここで問題が出てくる。ググればたくさんその手の話が出てくるが、要するに mocha、ひいては node.js が今現在 cjs と esm の過渡期にあって、まだあんまり esm の対応が行き届いていない。

mocha においても、import/export を使ったソースを渡してもエラーになる。その辺をどうするかはまさに議論中のようだ。

で、いくつかのワークアラウンドが考えられて:

  • ブラウザ上でテストを実行する: cjs と esm の混乱はあくまで node.js の中の話である。ブラウザを起動してその上でテストを実行すれば普通に esm のコードがテスト対象になる、はず
  • esm のコードを babel でトランスパイルした上でそれをテストする
  • モジュールをダイナミックロードする

前2者はワークアラウンドにしては大掛かりになるので、最後の奴で行ってみよう。

const assert = require('assert');
let testfunc1, testfunc2;

before(() => import('./path/to/module').then(module => {
  ({testfunc1, testfunc2} = module);
});

describe('test', () => {
  it('works', () => {
    // test code with testfunc[12]
  });
});

どうでもいいが最近のこの wordpress のエディタが使いにくい。

Leave a Reply

Your email address will not be published.