關於前端單元測試
許多新手,包含過去的我都會犯這相同的錯誤,就是會想要在單元測試測 component 以外的外部影響。但我後來了解到,其實不需要去測到這麼複雜,這只是徒增測試上的困擾,真正該被測試的是只是「那個元件實際完成的工作」。
常常聽到,很多測試的問題,但我整個做了下來得到的經驗都是自己「貪圖一個案例測到太多東西」,導致測試變得複雜。前端的元件單元測試確實相當不好測,加上還有運行環境問題和框架問題。
舉例來說:如果觸發元件的動作很複雜,可能要經過2~4個步驟才能觸發某個 event,這個時候就不要貪圖去把背後最終的 side effect 的渲染結果一次測到。建議先測「觸發」,再測「渲染」,由兩個 Test Case 去測這件事,因為他們要達成的目的是兩件事。
再舉一個例子,可能你有很多外部依賴,包含 store、router、api、ui library ⋯等等。但其實你不用貪圖在單元測試全部測到,那個是 end to end 才需要做到位。其實你可以把這些外部依賴全部 mock ,這樣可以更好的去關注在你的「單元」上。
雖然大家常常念「測試很重要」,但又有多少公司願意讓底下的工程師好好寫測試呢?