Jest:Timer Mocks

留言

常用的 native timer 包括 setTimeoutsetIntervalclearTimeoutclearInterval 等,用到這些 timer 的函數可以說是依賴於真實流逝的時間。如果 timer 要跑幾秒後才會觸發,或是要確認某函數是否在固定週期內被呼叫幾次,你不可能真的去等待 timer 跑完才能驗證結果吧,那根本是浪費時間。所以應該要使用 mock 函數來 mock 掉那些 timer 函數,透過 Jest 提供的功能來控制時間,其中就有時間快轉的功能,減少測試要等待的時間。