參考:掘金
為什么要進行單元測試?
- 保證代碼正確性
- 放心進行重構
- 驅動開發TDD
- 實現自動化測試
測試驅動開發
它是一種測試先於編寫代碼的思想用於指導軟件開發
在TDD中側重點偏向開發,通過測試用例來規范約束開發者編寫出質量更高、bug更少的代碼
行為驅動開發
行為驅動開發是一種敏捷軟件開發的技術,它鼓勵軟件項目中的開發者、QA和非技術人員或商業參與者之間的協作
BDD更加側重設計,其要求在設計測試用例的時候對系統進行定義,倡導使用通用的語言將系統的行為描述出來,將系統設計和測試用例結合起來,從而以此為驅動進行開發工作。
斷言庫
所謂"斷言",就是判斷源碼的實際執行結果與預期結果是否一致,如果不一致就拋出一個錯誤。
它是編寫測試用例的關鍵。斷言功能由斷言庫來實現,Mocha 本身不帶斷言庫,所以必須先引入斷言庫。
前端測試流
測試腳本
通常,測試腳本與所要測試的源碼腳本同名,但是后綴名為.test.js(表示測試)或者.spec.js(表示規格)。
mocha
Mocha 測試用例主要包含下面幾部分:
- describe 定義的測試套件(test suite),表示一組相關的測試。
- it 定義的測試用例(test case),表示一個單獨的測試,是測試的最小單位。
- 測試代碼
- 斷言部分
Karma
可以監控一套文件的變換,並立即開始測試已保存的文件,用戶無需離開文本編輯器。
如果要使用 karma 和 mocha 最好通過npm install karma-cli -g
全局安裝karma-cli
。
Travis.CI
提供的是持續集成服務(Continuous Integration,簡稱 CI)。它綁定 Github 上面的項目,只要有新的代碼,就會自動抓取。然后,提供一個運行環境,執行測試,完成構建,還能部署到服務器。