說我有一個組件,呈現一個簡單的div包含一個整數,從0開始,每秒鐘加1。因此,5秒後,組件應呈現「5」,30秒後呈現「30」等。如果我想測試這個組件,並確保它在5秒後渲染它,我可能會寫這樣的東西。如何在使用jest的模擬時間之後運行斷言測試?
it('should render <5> after 5 seconds',() => {
const time = mount(<Timer/>)
setTimeout(() => {
expect(time.text()).toEqual('5')
}, 5000)
})
但是,這不起作用,因爲測試從未實際運行預期並且無論什麼都返回通過。即使它確實有效,使用這樣的超時也是非常低效的,因爲測試需要等待5秒鐘。而如果我想模擬更多的時間呢?在做了一些搜索之後,我發現笑話實際上有一個timer mock,但我似乎無法弄清楚如何在這種情況下實現它。任何幫助將不勝感激。謝謝!
你能分享使用定時器的模塊代碼嗎? –