Mocha - the fun, simple, flexible JavaScript test framework

Mocha 是 Node.js 上的單元測試框架。該單元測試框架能讓我們撰寫測試案例、運行單元測試、及產生測試報告等。


使用前先從 Registry 下載套件。

npm install mocha --save-dev


然後透過 Mocha 提供的 describe、it、before、after、beforeEach、afterEach 這幾個方法撰寫單元測試。


describe 用來設定描述測試的功能或情境,it 用來設定測試案例,before 用來設定測試情境下所有測試案例運行前要做的動作,after 用來設定測試情境下所有測試案例運行後要做的動作,beforeEach 用來設定每個測試案例運行前要做的動作,afterEach 用來設定每個測試案例運行後要做的動作。


像是下面這樣:

1
2
3
4
5
6
7
describe('Array', function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function() {
...
});
});
});


單元測試的斷言部份 Mocha 並未提供,需額外使用 Chai 之類的斷言套件搭配撰寫。


所以如果用 Mocha 搭配 Chai 撰寫,程式就會像下面這樣:

1
2
3
4
5
6
7
8
var assert = require('assert');
describe('Array', function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function() {
assert.equal([1, 2, 3].indexOf(4), -1);
});
});
});


撰寫完可直接調用 Mocha 進行測試,若未指定檔案,Mocha 會自行找出當前目錄及其子目錄下的所有單元測試並運行。

./node_modules/.bin/mocha


若要指定測試特定測試檔案,調用 Mocha 並將其帶入即可。

./node_modules/.bin/mocha ${File}


也可以在 package.json 加入 Script 設定。

1
2
3
4
5
...
"scripts": {
"test": "mocha"
},
...


然後透過 npm 調用 Mocha。