0
グローバルを使用し宣言するJavaScriptモジュールがいくつかあります。私はこれがアンチパターンであることは承知していますが、それは止まらない解決策です。私たちの依存関係が自分のESモジュールのバージョンを公開するまで、私たちはそれらをグローバルから切り離します。ここでは、例としてReduxで行うことについて説明します。ノード内のブラウザモジュールをテストするためのグローバルモック
// Example: instead of
import createStore from '../path/to/redux.js';
// we do
const {createStore} = Redux;
これは、ブラウザで御馳走を動作し、依存関係が更新されたときに、それはリファクタリングするのは簡単だろう、しかし、モカを持つノードでのテストは別の話です:
// myReducer.test.mjs
import reducer from '../../src/redux-modules/myReducer';
import initialState from '../../src/redux-modules/myReducer';
export default function videosReducerTests() {
assert('reducer', function() {
it('should return initial state by default', function() {
reducer({}, {}).should.equal(initialState);
});
});
}
私がインストールしました
"devDependencies": {
"@std/esm": "^0.14.0",
},
"@std/esm":"js",
"scripts": {
"redux-test": "node -r @std/esm test/redux/index.mjs",
}
yarn redux-test
を実行した結果が
ReferenceError: Redux is not defined
私は私のテストファイルの上部にglobal.Redux = {createStore: Function}
などで必要な名前空間をからかってみたが、輸入は「掲揚」されているので、それらはすべて、無視されます。
このブロックを回避する方法についてのヒントはありますか?