我們要測試四件事:
- 應該要到設定的時間才執行
- 測試重複調用,應該只能調用一次
- 測試參數傳遞沒有問題
- 測試組件卸載的時候不應該執行
advanceTimersByTime
可以模擬快進,跟上次直接完成不一樣,也是一個很方便使用的功能如果複製貼上這段測試碼,就會發現測試清理這個測試沒有通過,回去看
useDebouncedCallback
,我發現我沒有useEffect
清除timeout
如果卸載組件加上這個就沒問題了
完成程式碼: