2017-04-19 5 views
4

モジュールのユニットテストを書いています。そして、私は本当にグローバルなvars &の機能を扱うための助けが必要です。 私は単に次のように質問します: 名前付きの 'needTest.js'でテストしたいモジュールを考えてみましょう。また、このような構造:冗談でユニットテストをしているときにグローバル関数を置き換える方法

enter image description here

私は私が最初import main from '../needTest.js'、私のテストファイルで、needTest.jsで主な機能をテストする必要があるため。私の質問です:関数のメインは3つの入力p1、p2とp3を必要とするだけでなく、それはまた、isA、isB、isCのようないくつかのグローバル変数や関数に依存します。これらのグローバルをテストファイルにどのように偽装するのですか?私は単純にそれらのグローバルの戻り値を置き換え、私のテストファイルをインポートに使用したものを無視するが、私が嘲笑したものだけを使用させたい。

答えて

0

これを達成する1つの方法は、Jestのjest.mock methodを使用することです。

jest.mock('module-isA-came-from',() => jest.fn(() => 42)); 

またはautomockedモジュールに期待を設定します:

isA.mockReturnValue(42); 
あなたはその後、明示的にモジュール工場を渡すことができますいずれか

jest.mock('module-isA-came-from'); 
jest.mock('module-isB-came-from'); 
jest.mock('module-isC-came-from'); 

関連する問題