import * を使用して Jest で ES6 モジュールのインポートをモックする方法?

DDD
リリース: 2024-10-24 05:22:02
オリジナル
776 人が閲覧しました

How to Mock ES6 Module Imports in Jest Using import *?

Jest で ES6 モジュール インポートをモックする

Jasmine では、ES6 モジュール インポートをモックするのは簡単です。ただし、Jest では、特にデフォルトのエクスポートを利用するモジュールを扱う場合、プロセスがより困難になる可能性があります。この記事では、簡単な import * ハックを使用して、Jest で ES6 モジュールのインポートをモックする方法について説明します。

従来、インポートをモックするには、インポートを require に置き換え、テスト内で宣言する必要がありました。このアプローチは望ましくない可能性があります。

<code class="javascript">// undesirable approach
import myModule from '../myModule';
import dependency from '../dependency';

describe('myModule', () => {
  // ...
});</code>
ログイン後にコピー

代わりに、 import * を利用してモジュールのエクスポートを直接変更し、目的の関数またはデフォルトのエクスポートをモックすることができます。名前付きエクスポートの場合:

<code class="javascript">import * as dependency from '../dependency';

// ...

dependency.doSomething = jest.fn(); // mutate the named export
myModule(2);

expect(dependency.doSomething).toBeCalledWith(4);</code>
ログイン後にコピー

同様に、デフォルトのエクスポートの場合:

<code class="javascript">import * as dependency from '../dependency';

// ...

dependency.default = jest.fn(); // mutate the default export
myModule(2);

expect(dependency.default).toBeCalledWith(4);</code>
ログイン後にコピー

この方法は ES6 インポートをモックするための回避策を提供しますが、インポートされたモジュールの変更が含まれることに注意することが重要です。これにより、テスト実行時に副作用や潜在的な問題が発生する可能性があります。したがって、jest.spyOn や jest.mock などの Jest のネイティブ モック メソッドを使用することが、推奨されるアプローチとして推奨されます。

以上がimport * を使用して Jest で ES6 モジュールのインポートをモックする方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!