背景:
單元測試必要性
單元測試其實就是白盒測試,以函式為粒度 通過測試框架,斷言庫api 來實現測試的目的。
這裡要說一下我學lodash的步驟,我是先去官網檢視函式定義,根據這個函式的作用定義,自己先寫**實現一遍,然後再對照原始碼,分析差距。所以我很符合測試驅動的場景。所以需要引入單元測試。
理想狀況是 我看完函式定義,就將測試用例寫好,然後寫好測試檔案,在開始編寫自己的函式。
測試基本概念
測試分為兩類:單元測試(unittest) 和端到端測試(e2e)。單元測試以函式為乙個單元,假定好入參和出參 。測試函式是否正常執行。常見於開發自測。
端到端測試 是功能性的測試,通過執行點乙個按鈕,輸入一些資料 等動作,看是否達到預期的效果。一般來說 測試人員用的比較多。
單元測試常用的工具: 測試框架+斷言庫
斷言庫:
斷言庫有很多種 常見的有assert,chai。我只用了assert,因為node自帶。它其實就是一些判斷條件,滿足條件認為true。否則是false。
斷言和if判斷的區別是 斷言識別非法情況,if判斷錯誤情況。斷言為false會自動中斷程式。if如果是false的話 理論上來說 還是要寫一些處理邏輯的。
如果單獨使用斷言庫 需要將斷言語句寫在要測試的函式內部。 這樣函式會很長。不好。如果函式需要發布到生產環境 還需要加上 #defin noebue 來禁用斷言。
測試框架:
測試框架就更多了,mocha, karma等。
因為斷言庫的不方便單獨使用,所以一般來說,我們都是配合著測試框架一起使用的。有的測試框架是自帶斷言庫的,也可以單獨使用乙個測試框架 配合著自己匯入的斷言庫。
匯入測試框架的話 就需要乙個工程了,不能在乙個js檔案裡瞎搞了。
需要建立乙個node專案 執行 npm init 可以快速獲取乙個node專案。 建好專案引入測試框架後,就可以用命令列 在node環境中 測試了。
前端測試 Part II (單元測試)
原文 testing your frontend code part ii unit testing by gil tayar 我們在part1裡已經說過,但與那測試就是測試單元的 不管這些單元是函式 模組還是類。多數人認為測試應該以單測為主,但我不這麼認為,如果你同意也沒有問題。我會一遍一遍又一遍...
前端測試 Part II (單元測試)
原文 testing your frontend code part ii unit testing by gil tayar 我們在part1裡已經說過,但與那測試就是測試單元的 不管這些單元是函式 模組還是類。多數人認為測試應該以單測為主,但我不這麼認為,如果你同意也沒有問題。我會一遍一遍又一遍...
前端測試 Part II (單元測試)
我們在part1裡已經說過,但與那測試就是測試單元的 不管這些單元是函式 模組還是類。多數人認為測試應該以單測為主,但我不這麼認為,如果你同意也沒有問題。我會一遍一遍又一遍地在這一系列文章中強調,你怎測試都行,只要你寫了足夠多的測試,讓你對你的上線有信心就行。不管你寫多少單測,單測確實是最好寫也最好...