一、簡單入門
如果只是單純想測試某個js函數(shù)執(zhí)行的結(jié)果是否符合預(yù)期結(jié)果,可用此方法。
- 安裝測試框架
mocha和斷言庫chai
npm i -g mocha chai
mocha:mocha是一個基于nodejs和瀏覽器集合的各種特性的JavaScript測試庫,并且讓異步測試變得簡單,支持TDD(測試驅(qū)動開發(fā))和BDD(行為驅(qū)動開發(fā)),在測試中捕獲到異常時,會給出靈活準(zhǔn)確的報告。
chai:chai是一個基于nodejs的斷言庫,并且完美支持各種主流的JavaScript測試框架。
- 寫測試用例
在根目錄下新建一個test文件夾里面放置測試用例。
測試模塊:
//add.js
function add (x, y) {
return x + y
}
module.exports = add
測試用例:
//add.test.js
var add = require('./add.js')
//Mocha本身不帶斷言庫,所以必須先引入斷言庫。
var expect = require('chai').expect
describe('加法函數(shù)測試', function () {
// mocha提供了4個hooks鉤子函數(shù)
before(function() {
// runs before all tests in this block
});
after(function() {
// runs after all tests in this block
});
beforeEach(function() {
// runs before each test in this block
});
afterEach(function() {
// runs after each test in this block
});
// 測試用例
it('1+1=2', function () {
expect(add(1, 1)).to.be.equal(2) //“斷言”:就是判斷源碼的實際執(zhí)行結(jié)果與預(yù)期結(jié)果是否一致,如果不一致就拋出一個錯誤。
})
})
上面這段代碼,就是測試腳本,它可以獨立執(zhí)行。測試腳本里面應(yīng)該包括一個或多個describe塊,每個describe塊應(yīng)該包括一個或多個it塊。
describe塊稱為"測試套件"(test suite),表示一組相關(guān)的測試。它是一個函數(shù),第一個參數(shù)是測試套件的名稱("加法函數(shù)的測試"),第二個參數(shù)是一個實際執(zhí)行的函數(shù)。
it塊稱為"測試用例"(test case),表示一個單獨的測試,是測試的最小單位。它也是一個函數(shù),第一個參數(shù)是測試用例的名稱("1 加 1 應(yīng)該等于 2"),第二個參數(shù)是一個實際執(zhí)行的函數(shù)。
- 執(zhí)行測試
Mocha默認(rèn)運行test子目錄里面的測試腳本。所以,一般都會把測試腳本放在test目錄里面,然后執(zhí)行mocha就不需要參數(shù)了。
--watch參數(shù)用來監(jiān)視指定的測試腳本。只要測試腳本有變化,就會自動運行Mocha。
mocha add.test.js --watch
or
mocha --watch
更多細(xì)節(jié):測試框架 Mocha 實例教程