私はnodeJSユニットテストのためにsinonJSフレームワークを使用しようとしています。問題は、サイロンスパイがまったく動かないということです。これは私のコードです:sinonスパイが関数呼び出しを検出しない
const callback = sinon.spy(someModule.callback)
mainModule.doSomethingFunction() //someModule.callback function is called inside this function
assert(callback.calledOnce, 'callback should be called once')
それはちょうどで失敗します。
AssertionError: callback should be called once
しかし、私が呼ばれるべき関数の内部でログインしていて、それは明らかにだけ、それが呼び出されているsinonスパイを示しそれを検出しません。何が間違っているのだろうか?あなたはスパイのラップを解除するために行われているときにrestore
を呼び出す必要があり
const callback = sinon.spy(someModule, 'callback');
mainModule.doSomethingFunction();
assert(callback.calledOnce, 'callback should be called once');
callback.restore();
注:スパイでオブジェクトのメソッドをラップする
質問に含まれているものがすべてテスト中のコードであれば、呼び出されません。あなたはスパイを作成し、それから何もしません。 – cartant
私は質問を編集しました:私は間違っていると思われるコールバック内の関数を追加しました。スパイの目的はスパイすることではなく、それを使って何かをしないのか?私はスパイがスパイしていると思ったが、その後スパイされた機能が呼び出されたかどうかをテストできますか? –
@ VilleMiekk-ojaはい、あなたのコードでは何も 'callback'を呼び出すことはありません。おそらく、それは 'doSomethingFunction'の引数として渡されるはずですか? – Bergi