【JavaScript】JasmineでsetTimeOut/crearTimeOutをspyOnする

Karma + JasmineでsetTimeOut/crearTimeOutをモックにします。

コード

setTimeOutには戻り値を設定しています。複数回呼ぶときはreturnValues(100, 101, 102...)としてやると、呼ぶごとに戻り値を変えられます。

//timeout系をmock化
spyOn(window, 'setTimeout').and.returnValue(100);
spyOn(window, 'clearTimeout');

//呼び出しチェック
expect(setTimeout).toHaveBeenCalled();
expect(clearTimeout).toHaveBeenCalled();

参考文献

stackoverflow.com