回覆列表
-
1 # 做前端的蝸牛
-
2 # 做前端的蝸牛
為什麼需要單元測試?
測試的作用當然是為了找出存在的問題,雖然在上線前需要經過QA測試,但是往往有很多邏輯是QA不瞭解的或者是不容易觸發的,其次做好的QA還是開發者本身,只有自己最瞭解自己的程式碼,可以利用單元測試全方位的對程式碼進行體檢,減少線上bug率!
需要單元測試的場景理論上任何程式碼都需要單元測試,雖然對開發者的能力要求不算太高,但是會導致開發週期加長,所以個人理解是高複用率的程式碼需要單元測試,比如元件、開原始碼、工具等等,業務程式碼不太適合做單元測試!
測試框架karma
jasmine
mocha
jest
這些比較流行
什麼是karma?不是測試框架,只是一個web伺服器,需要自己配置測試框架,比如jasmine等
在連線它的瀏覽器上執行測試程式碼,可以做除錯,在本地控制檯可以檢視單側結果
可以配置多樣的報表
測試框架特點mocha最流行,社群最成熟,需要引入斷言庫,簡單,靈活,支援promise,也可以新增對generators的支援
jasmine適合tdd測試,沒有依賴,社群大,透過‘done’支援async和promise測試
jest mock簡單,執行速度快,支援dom測試,支援RN測試等
如何選擇框架?斷言庫是否好用
測試風格:測試驅動 or 行為驅動
對非同步是否支援良好
社群是否活躍
測試結果測試會生成報告,考慮覆蓋率的四個維度
行覆蓋率:是否每一行都執行了?
函式覆蓋率:是否每個函式都呼叫了?
分支覆蓋率:是否每個if邏輯都執行了?
語句覆蓋率:是否每一條語句都執行了?
為什麼需要單元測試?
測試的作用當然是為了找出存在的問題,雖然在上線前需要經過QA測試,但是往往有很多邏輯是QA不瞭解的或者是不容易觸發的,其次做好的QA還是開發者本身,只有自己最瞭解自己的程式碼,可以利用單元測試全方位的對程式碼進行體檢,減少線上bug率!
需要單元測試的場景理論上任何程式碼都需要單元測試,雖然對開發者的能力要求不算太高,但是會導致開發週期加長,所以個人理解是高複用率的程式碼需要單元測試,比如元件、開原始碼、工具等等,業務程式碼不太適合做單元測試!
測試框架karma
jasmine
mocha
jest
這些比較流行
什麼是karma?不是測試框架,只是一個web伺服器,需要自己配置測試框架,比如jasmine等
在連線它的瀏覽器上執行測試程式碼,可以做除錯,在本地控制檯可以檢視單側結果
可以配置多樣的報表
測試框架特點mocha最流行,社群最成熟,需要引入斷言庫,簡單,靈活,支援promise,也可以新增對generators的支援
jasmine適合tdd測試,沒有依賴,社群大,透過‘done’支援async和promise測試
jest mock簡單,執行速度快,支援dom測試,支援RN測試等
如何選擇框架?斷言庫是否好用
測試風格:測試驅動 or 行為驅動
對非同步是否支援良好
社群是否活躍
測試結果測試會生成報告,考慮覆蓋率的四個維度
行覆蓋率:是否每一行都執行了?
函式覆蓋率:是否每個函式都呼叫了?
分支覆蓋率:是否每個if邏輯都執行了?
語句覆蓋率:是否每一條語句都執行了?