jest.resetModules()
は、すべてのモジュールの必要なキャッシュをクリアしますが、単一のモジュールだけでそれをクリアする方法はありますか? Jestがバイパスしているように見えるため、_require.cache
_を使用できません。
私はNodeステートフルなモジュールをテストしています(つまり、require
への複数の呼び出しが同じインスタンスを返すという事実に依存しています)。私のテストでは、さまざまなシナリオをテストするためのモジュールの状態jest.resetModules()
は機能しますが、リセットする必要のない他のモックモジュールをre -require
する必要があります。
コメントで言及されたPRはマージされました。 v24.0.0-alpha.9以降、これを行うために jest.isolateModules
を使用できるようになりました。
特定のモジュールのみをリセットする場合、jest.isolateModules
のコールバックでそれを要求する必要があるとします。
let myModule;
jest.isolateModules(() => {
myModule = require('my-certain-module');
});