2016-08-11 18 views
1

websocketライブラリに依存するコードに対してJestテストを書いています。Jest setTimeoutモックを無効にする

websocketライブラリが偽装されています。私は、メッセージを送信し、非同期アクションが完了するのを待って、応答を確認したい。

it('sends a message and gets a response',() => { 
    processor(ws).sendMessage() // do a bunch of async stuff, call websocket.sendMessage() 
    setTimeout(() => { 
    expect(ws.getResponse()).toEqual('all done') 
    }, 100) 
}) 

残念ながらJest mock setTimeout、setTimeoutが失敗するためです。​​を実行すると、タイムアウトが瞬時に発生するため、メッセージを受け取れません。

jestにsetTimeoutをアンロックする方法やジャスミンの回避策を考えてみましょうか?

+0

Jest 15は、デフォルトでタイマーのモックを無効にするように見えます。http://facebook.github.io/jest/blog/2016/09/01/jest-15.html –

答えて

3

テストケースの前に次のコードを追加できます。 Jest v14.1.0 -

jest.useRealTimers() 
関連する問題