2016-08-11 98 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嘲笑setTimeout,setTimeout失敗。如果我運行​​,超時發生瞬間,所以無法拿起消息。

任何想法如何說服笑話解除setTimeout,或茉莉花解決方法?

+0

玩笑15似乎禁止定時器默認http://facebook.github.io/jest/blog/2016/09/01/jest-15.html嘲笑 –

回答

3

您可以在測試用例之前添加以下代碼。它爲我開玩笑v14.1.0 -

jest.useRealTimers()