主程式
首先製作一個簡單的useCounter
我們希望他會有三個功能,加一、減一、重置到初始值,並且也要回傳count值、與可以自己設定的setCount,我們也能設定初始值
稍微解釋一下,我們可以在useCounter()中放入一個參數,我們設定是initialValue?: number,?:代表他是選填的,並不是必要傳入的參數,reset如果有設定初始值,就會變成初始值,不然就會變成0
測試
那接下來我們要開始寫測試了,首先我們要思考我們可能會需要哪些測試->
- 測試如果沒有填入初始值,count預設會是0
- 測試如果有填入初始值,count預設會是初始值
- 測試是否有加一
- 測試是否有減一
- 測試是否有重置為初始值
前面應該都還算簡單,接下來reset中,我們會在講解renderHook中其實可以傳兩個參數與renderHook的另一個回傳值: rerender的用法
接下來跑npm test吧
成功畫面應該會長得像底下這樣

Pass底下的useCounter custom hook就是我們剛剛寫的describe的第一個參數,描述測試大綱
✓ should use default initial value (9 ms)
✓ should use initial value (2 ms)
✓ should increment counter (3 ms)
✓ should decrement counter (2 ms)
✓ should reset counter to initial value (2 ms)
底下這五個則是我們剛剛寫的It的第一個參數,描述測試內容
今天可能比較多東西,但因為custom hook比較簡單,所以直接把custom hook與測試放一起,接下來應該是一天custom hook,隔一天講解測試,目前安排了11個實例,有什麼希望也可以講解的測試或想了解的custom hook都可以在下面留言.
有什麼不會、不了解的也歡迎下面提問,有什麼我寫錯的也歡迎指正,太趕或任何問題都可以在下面提出.
你們的觀看就是我繼續的動力,謝謝大家~