0
ファイルだから私は依存関係を持っている:私は前にDEPの関数を呼び出すには、ファイルシステムをモック場合依存関係のロード&システムモッキング
dep = require('dep')
、DEPがからエクスポートされたファイルが見つかりません。
mockFs({})
dep.bar() #file where dep exported from not found
depをエクスポートしたファイルを模倣する前に関数を呼び出すと、その関数が呼び出されます。
dep.foo()
mockFs({})
dep.bar() #works
この動作の原因は何ですか?
ありがとうございます!それを先に進ませてロードするためのあらゆる考え? dep.foo()を事前に呼び出すと他の関数もロードされるようです。 – Drew
これはユニットテストとモックに関するトリッキーな部分です - ファイルのロード順です!通常、すべての 'require()'はすべてのファイルの先頭にあるので、最初のテストファイル(そして最初のモック)が実行される前に、すべてのファイルが最初にロードされるので、いくつかの模倣ライブラリには、既存の機能を引き継ぐことができる「スパイ」、または要求キャッシュがあります。また、 'require()'呼び出しが呼び出される場所を変更して、それらを効果的に擬似することができます。 – clay
上記のシナリオ2で2番目の関数を呼び出すときに依存関係に関連するファイルに関して私が説明していなかったことについての考えはありますか?すべてのコードの前に依存関係が必要です。そしてありがとう! – Drew