程序邏輯
,可使用單元測試業務邏輯
,不能使用單元測試測試內容:測試求和函數javascript
測試工具:Node.js的
assert
模塊,該模塊具體用法詳見Node.js的官方文檔前端
hello.js
文件,輸出一個簡單的求和函數// hello.js
module.exports = function(...rest) {
var sum = 0;
for(let n of rest) {
sum += n;
}
return sum;
}
複製代碼
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
報錯,就會終止整個程序的執行,後面的測試也就沒法測試了,這對於咱們的實際項目而言顯然是不夠的,爲此,要實現自動化的前端測試,須要藉助一些開源框架。架構
Mocha
Mocha
是基於Node.js的JavaScript測試框架,具備以下的一些特色:框架
- 兼容多種風格的斷言庫
- 測試用例可進行分組
- 同步兼異步的測試架構
- 提供多個生命週期鉤子
Karma
karma
是測試框架的驅動器,它爲測試提供了多種測試環境,可運行單元測試框架(例如mocha
)在這些環境中進行測試,並生成測試報告測試框架的驅動器 的理解:函數
- 若是隻是使用
mocha
整個測試框架來進行開發測試,則每次開發完一個模塊,就必須手動啓動mocha
來進行測試,這就很是的麻煩- 使用
karma
,便可在開發時進行自動對新的代碼進行測試,生成測試報告