Lainbo

Lainbo's Blog

If you’re nothing without the suit, then you shouldn't have it.
github

前端工程化入門05 - 測試

什麼是測試#

維基百科的定義:

在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟體質量,並對其是否能滿足設計要求進行評估的過程。

也可以這樣理解:測試的作用是為了提高代碼質量和可維護性。

  1. 提高代碼質量:測試就是找 BUG,找出 BUG,然後解決它。BUG 少了,代碼質量自然就高了。
  2. 可維護性:對現有代碼進行修改、新增功能從而造成的成本越低,可維護性就越高。

什麼時候寫測試#

如果你的程序非常簡單,可以不用寫測試。例如下面的程序,功能簡單,只有十幾行代碼:

function add(a, b) {
    return a + b
}

function sum(data = []) {
    let result = 0
    data.forEach(val => {
        result = add(result, val)
    })

    return result
}

console.log(sum([1,2,3,4,5,6,7,8,9,10])) // 55

如果你的程序有數百行代碼,但封裝得很好,完美的踐行了模組化的理念。每個模組功能單一、代碼少,也可以不用寫測試。

如果你的程序有成千上萬行代碼,數十個模組,模組與模組之間的互動錯綜複雜。在這種情況下,就需要寫測試了。試想一下,在你對一個非常複雜的專案進行修改後,如果沒有測試會是什麼情況?你需要將跟這次修改有關的每個功能都手動測一遍,以防止有 BUG 出現。但如果你寫了測試,只需執行一條命令就能知道結果,省時省力。

測試類型與框架#

測試類型有很多種:單元測試、集成測試、白盒測試...

測試框架也有很多種:Vitest、Jest、Jasmine、LambdaTest...

單元測試#

什麼是單元測試?維基百科中給出的定義為:

單元測試(英語:Unit Testing)又稱為模組測試,是針對程序模組(軟體設計的最小單位)來進行正確性檢驗的測試工作。

從前端角度來看,單元測試就是對一個函數、一個組件、一個類做的測試,它針對的粒度比較小。

單元測試應該怎麼寫呢?

  1. 根據正確性寫測試,即正確的輸入應該有正常的結果。
  2. 根據錯誤性寫測試,即錯誤的輸入應該是錯誤的結果。

未完……#

參考資料#

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。