分層測試(二):單元測試

什麼是單元測試?

對代碼中的邏輯隔離的最小代碼片段進行測試,驗證其邏輯是否符合預期,單元可以是函數,方法,類,功能模塊。

單元測試的優點

  1. 掌握代碼:單元測試允許開發人員瞭解單元提供的功能以及如何使用它以獲得對單元 API 的基本瞭解。
  2. 迴歸測試:單元測試允許程序員改進代碼並確保模塊正常工作。
  3. 儘早測試:單元測試可以測試項目的某些部分,而無需等待其他部分完成。
  4. 測試左移:在軟件開發的早期定位和解決錯誤。
  5. 提升複用度:使代碼的可重用性更可行。

單元測試的挑戰

  1. 時間成本:編寫單元測試會增加開發人員工作量,單元測試跟生產代碼是一樣的,並不會因爲是用來測試的就有所不同,開發人員同樣要面對測試代碼的編寫,維護等工作,要將單元測試代碼寫好非常考驗開發人員編碼能力和測試代碼設計能力。
  2. 資源投入:推廣和讓單元測試發生作用投入比較大,只有讓每個開發同學都編寫足夠好,足夠穩定的單元測試代碼,才能真正享受單元測試帶給我們的好處,在達到這種程度之前,需要非常多的資源投入。

單元測試原則

1. 寫出合適的測試名稱

編寫測試時要考慮的基本事項是選擇測試名稱。這非常重要,因爲好的測試名稱可以提高程序員和將來可能使用該代碼的其他人的代碼的可讀性。可以在單元測試中應用標準命名約定。

2. 創建簡單的測試

保持測試代碼儘可能簡單是維護代碼的關鍵。單元測試代碼也可能有錯誤,尤其是在高度複雜的情況下。測試不需要很花哨。因此,邏輯、手動字符串或所述圈複雜度等功能應該最少。

3. 冪等性測試

只要代碼保持不變,無論輸入如何,測試總是會產生相同的結果。這最大限度地減少了誤報和漏報的發生率。測試需要是冪等性的,因爲呈現可變結果的測試是不可信的。要使測試具有冪等性,它必須與其他測試用例、環境值和外部依賴性隔離開來。

4. 解決單個使用場景

每個測試都應該只用於測試單個使用場景。這將更更易驗證代碼輸出和更好地洞察所發現錯誤的原因,而無需懷疑問題是否是誤報。

5. 最小化測試依賴

當測試不依賴於其他軟件部分時,它們的穩定性是最好的。外部因素也不應該影響測試的結果。

6. 測試自動化

儘管可以手動進行單元測試,但當前的做法鼓勵使用自動化單元測試方法。事實證明,它不僅高效、便宜,而且省時。單元測試是DevOps 自動化工具執行的一項基本功能,可簡化編碼過程。

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