抽象クラスから拡張された一連のクラスがある電子プロジェクトがあります。抽象クラスには、sequelize インスタンスとモデルのインポートがあります (以下の再現コードには示されていません)。
コンパイルすると、私の電子アプリは正常に動作します。しかし、テストでは、jest はエラーを返し続けます
Class extends value undefined is not a constructor or null
私が読んだことから、これは循環依存関係が原因です。コードについて何度もコメントしてきましたが、テストを通じてこの問題を防止/解決する方法を理解できません。
再現コードはこちらにあります: https://github.com/jjoey87/jest-circular-dependencies
インポートを再構築するより良い方法や、この作業を冗談の下で行うための実際の回避策はありますか? electron-webpack を介してコンパイルすると問題が発生しないのに、冗談でスローされる理由がわかりません。また、モジュール B の下にあるインポートされたコンポーネントにコメントを付けるかどうかも観察します。これにより、テストを実行/パスできます。
import ModuleC from '@common/ModuleC'
// import ComponentC from '@common/providers/ComponentC'
// import ComponentD from '@common/providers/ComponentD'
// import ComponentE from '@common/providers/ComponentE'
// import ComponentF from '@common/providers/ComponentF'
// import ComponentA from '@common/providers/ComponentA'
// import ComponentB from '@common/providers/ComponentB'
const providers = [
// ComponentC,
// ComponentD,
// ComponentE,
// ComponentF,
// ComponentA,
// ComponentB
]
同様に、Abstract クラスからの Sequelize のインポートにコメントすると、テストに合格できます。