1
多くの研究を行っても、親オブジェクトなしでエクスポートされた関数をモックする方法は見つけられません。たとえば、私は、モック関数にしようとしている次のようにエクスポート:Jasmine spy on関数が親オブジェクトなしでエクスポートされ、NODEでES6を使用してインポートされました
import {thing} from 'emvio-util-responses;
//call some function that calls thing()
spyOn(???, 'thing').and.returnValue({});
expect(???.thing).toHaveBeenCalled();
:テストファイルにこれらをインポートするとき、私はこのようにインポートしてみてください
module.exports = function thing(event) {};
OR ES6
でexport function thing(event) {};
を
私はこれを達成するための多くの方法を試しましたが、モックは呼ばれません。 *は、*をインポートし、エイリアスを親オブジェクトとして提供することをお勧めします。このように:
import * as SomeObj from 'emvio-util-responses;
//call some function that calls thing()
spyOn(SomeObj , 'thing').and.returnValue({});
expect(SomeObj .thing).toHaveBeenCalled();
これは機能しません。
その他windowオブジェクト
spyOn(window, 'thing').and.returnValue({});
を使用することをお勧めしかし、私はノードにいるよ:(あなたはES6モジュールを使用する場合