5
私は、ecmacript 6コードをテストするためのmocha、babel、およびnodeを持つテストセットアップを持っています。インポートされたモジュールをecmascript 6でモックできますか?
誰かが、テスト中のモジュールでインポートを模倣する方法について提案はありますか?
私は、ecmacript 6コードをテストするためのmocha、babel、およびnodeを持つテストセットアップを持っています。インポートされたモジュールをecmascript 6でモックできますか?
誰かが、テスト中のモジュールでインポートを模倣する方法について提案はありますか?
ES2015でのインポートとエクスポートは、言語そのものの一部であり、静的に分析できるように設計されています。したがって、それらは実行時に操作することはできません。そのため、動的なモックが不可能になります。
軽量依存性注入フレームワーク、または動的モジュールリゾルバのいくつかの形式を実装することをお勧めします。
SystemJSは、ユニバーサルモジュールローダーとしてお選びいただけます。
希望に役立ちます!
これは実際にはES6とは関係ありませんが、使用しているモジュールローダーがあります。 jest auto-mocks依存関係:http://facebook.github.io/jest/ –
@FelixKlingそれはES6と関係があります。 CommonJSはプロキシクワイアを使って模擬するのは簡単ですが、ES6のインポートで解決するのはもっと複雑です。私はいくつかの解決策を知っていますが、まだ優れたものを探しています。この質問をもう一度開いて、他のソリューションがどのような解決策を見ているかを確認したいと思います。あなたが言及した冗談は一つの解決策ですが、それは誰にとっても完璧な解決策ではないかもしれません。そして、それはMochaで解決する方法には答えませんでした。 – gregers
@FelixKling +1再開。この質問はnodejsの質問ではなく、むしろES6の質問です。 'require'と' import'は非常に異なった働きをします。 – atoth