單元測試

一. 單元測試的基本介紹:

1. 什麼是單元測試:

  • 單元測試即對一個模塊、一個函數或者一個類來進行正確性校驗的測試工做

2. 單元測試的意義:

  • 能夠確保一個程序模塊的行爲符合咱們設計的測試用例。這樣,即便未來對程序模塊進行了修改、重構,只要測試用例可以經過,就能最大程度保證該程序模塊是正確的

3. 單元測試的注意點:

  1. 對每個單元進行測試時,須要寫多個測試用例,這樣才能保證測試結果的準確性
  2. 這要求在開發時,各個單元要儘可能解耦,不然單元是不可測的
  3. 單元測試強調的是對程序邏輯的測試,而不是對業務邏輯的測試,例如:
    • 測試某個函數的輸出結果是否符合預期——程序邏輯,可使用單元測試
    • 檢測某個表單的輸入值是否符合規範——業務邏輯,不能使用單元測試

二.單元測試的基本實現:

測試內容:測試求和函數javascript

測試工具:Node.js的assert模塊,該模塊具體用法詳見Node.js的官方文檔前端

  1. 編寫一個hello.js文件,輸出一個簡單的求和函數
// hello.js
module.exports = function(...rest) {
    var sum = 0;
    for(let n of rest) {
        sum += n;
    }
    return sum;
}
複製代碼
  1. 編寫一個test.js文件,使用assert模塊對該函數進行測試:
// test.js
const assert = require('assert');
const sum = require('./hello');

assert.strictEqual(sum(), 0);
assert.strictEqual(sum(1), 1);
assert.strictEqual(sum(1, 2), 3);
assert.strictEqual(sum(1, 2, 3), 6;
複製代碼

只要有一項測試沒經過,斷言就會失敗,拋出錯誤java

三.前端單元測試的工程化、自動化

上述案例爲咱們展現瞭如何實現一個簡單的單元測試,可是有一個明顯的缺陷就是:只要有一個assert報錯,就會終止整個程序的執行,後面的測試也就沒法測試了,這對於咱們的實際項目而言顯然是不夠的,爲此,要實現自動化的前端測試,須要藉助一些開源框架。架構

1.單元測試框架——Mocha

Mocha是基於Node.js的JavaScript測試框架,具備以下的一些特色:框架

  1. 兼容多種風格的斷言庫
  2. 測試用例可進行分組
  3. 同步兼異步的測試架構
  4. 提供多個生命週期鉤子

mocha的使用總結異步

2.測試框架驅動器——Karma

  • karma是測試框架的驅動器,它爲測試提供了多種測試環境,可運行單元測試框架(例如mocha)在這些環境中進行測試,並生成測試報告

測試框架的驅動器 的理解:函數

  • 若是隻是使用mocha整個測試框架來進行開發測試,則每次開發完一個模塊,就必須手動啓動mocha來進行測試,這就很是的麻煩
  • 使用karma,便可在開發時進行自動對新的代碼進行測試,生成測試報告

Karma的使用總結工具

相關文章
相關標籤/搜索