ホームページ >ウェブフロントエンド >jsチュートリアル >Jest を使用して同じモジュール内の関数を効果的にモックするにはどうすればよいですか?
Jest を使用して同じモジュール内の関数をモックする
Jest を使用して同じモジュール内の関数をモックする場合、考えられる問題を考慮することが重要ですモジュールのインポートを使用します。よくある問題の 1 つは、インポートされた関数が元のモック化されていない関数への参照を保持し、予期しない動作を引き起こす可能性があることです。
この問題を効果的に解決するには、次のアプローチを検討してください。
モジュール コードの分離
モジュールを別のコード ファイルにインポートし、エクスポートされた各エンティティがそれ自体のインスタンスを使用するようにします。メインモジュールファイルからの元のエクスポートを参照します。例:
// module.dev.js import * as thisModule from './module.js'; export function bar() { return 'bar'; } export function foo() { return `I am foo. bar is ${thisModule.bar()}`; // remaining code ...
分離モジュールのモック
これで、foo 関数がローカル関数を使用するようになったので、分離モジュール内で bar 関数を簡単にモックできます。 bar のインスタンス:
import * as module from '../src/module-dev'; describe('module', () => { // ... set up mocks and tests spyOn(module, 'bar').and.returnValue('fake bar'); expect(module.foo()).toEqual('I am foo. bar is fake bar'); });
の利点分離
モジュールを独自のコード ファイルにインポートすることは型破りに見えるかもしれませんが、次のような大きな利点があります。
このアプローチを採用すると、Jest を使用して同じモジュール内の関数を効果的にモックすることができ、テスト スイートの信頼性と効率性を確保できます。
以上がJest を使用して同じモジュール内の関数を効果的にモックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。