初涉單元測試

什麼是單元測試?

對軟件中的最小可測試單元進行測試
對組成項目的方法進行一個一個測試
組成軟件功能和系統的方法是否達到預期目標。

爲什麼要用單元測試
  1. 分模塊開發,方便的定位到哪個單元出了問題。(單個模塊,單個處理,對每一個模塊都進行測試)
  2. 保證了代碼質量 (減少問題發生的概率)
  3. 驅動開發(測試先行)
單元測試的兩種類型

1:TDD
測試驅動開發,從需求角度看。 即我需要的結果是什麼,如果不是就是錯誤的。

執行步驟:
需求分析> 編寫單元測試>編寫代碼使單元測試通過 > 重構

2: BDD
行爲驅動開發,從具體功能角度出發。即看結果是什麼,如果不是什麼就是出錯

執行步驟:
從業務角度定義目標> 找到實現目標到的方式> 編寫單元測試> 實現行爲> 檢查產品

測試原則
  1. 及時修改和維護(隨着需求和業務的變動而改變測試代碼)
  2. Code Review (審查代碼是否實現所預期,邏輯是否正確。代碼是否簡單易懂。是否符合團隊規範。)(Code Review延伸:同步code review: 即寫完代碼後立即進行代碼審查; 異步code review: 藉助工具進行代碼審查; 偶爾code review: 會議式的代碼審查)
  3. 只測單一的點(例如屏蔽掉一個方法中的其他方法的調用)
  4. 儘量貼近真實
  5. 避免測試中邏輯過於複雜
單元測試的核心內容
  1. 測試框架 (運行執行方法)
  2. 斷言庫(查看檢查結果)
  3. Mock庫(屏蔽外部依賴)
  4. Test runner
  5. 覆蓋率工具(測試代碼覆蓋了多少行,多少方法,)
常見的測試框架
  1. Jest——基於jasmine, 自帶assert和mock,對react友好。(全部集成)
  2. Jasmine——bdd風格,自帶assert和mock
  3. Mocha——全面適合node和瀏覽器兩個端(不帶斷言和mock)(自由搭配)
  4. Qunit——出自jquery,後來獨立出來
常見的斷言庫

Chai——支持所有風格-(比較全面)(佔據市場份額60%+)
Should——
expect
Assert——node環境直接使用

Mock庫

sinon

Test runner

karma

覆蓋率工具

istanbul(伊斯坦布爾)

應用場景

1.vue初始化一個項目時的選項
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章