いくつかの API ファイルで Redis キャッシュを使用しています。つまり、テストでモックする必要がある依存関係があります。次のファイル構造があるとしましょう
-api
- login.js *
- login.spec.js
- initiate.js
- initiate.spec.js
- user.js *
- user.spec.js
- routes.js
- server.js
* を含むファイルにredis-connection
依存関係があるとしましょう。これspec.js
を Proxyquire を使用してそれぞれでモックできます。
簡単。
その後、すべてのテストを実行すると問題が発生し、Mocha がサーバーを起動します。これらのファイルはすべて myroutes.js
に取り込まれ、Redis が実行されていないため失敗します。これを回避する方法がいくつかあります。
- proxyquire をグローバルにモックする -ドキュメントはこれを好まない。
- 私の現在の回避策は、必要な各ファイルで
redis-connection
、本物または基本的なモック if を条件付きでインポートしますprocess.env.NODE_ENV === 'test'
。次に、特定の動作が必要な場合は、このモックを関連するスペック ファイル内のより有用なモックにプロキシ要求します。複雑ですが、機能しているようです。 redis-connection
すべてのスペック ファイルで が出現するたびにモックを作成します。管理するのは恐ろしいですね。Mocha が最初にサーバーを実行するときにも機能しない可能性があります
これを回避する他の方法はありますか?この依存関係を頻繁に使用していないため、当面は回避策が機能する可能性があると思いますが、よりスケーラブルなソリューションを希望します。
ありがとう