測試框架mocha初試

一、安裝

使用npm全局安裝:
npm i mocha -g

也可以作為項目的依賴進行安裝:
npm i mocha -D

二、開始編輯

創建test文件夾,在文件夾內創建test.js測試文件:
mkdir test
cd test
touch test.js

將代碼寫入test.js文件中:
var assert = require('assert')

describe('Array', function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function() {
assert.equal(-1, [1, 2, 3].indexOf(4))
})
})
})

describe('assert', function () {
it('a和b應當深度相等', function () {
var a = {
c: {
e: 1
}
}
var b = {
c: {
e: 1
}
}
assert.deepEqual(a, b)
})

it('可以捕獲并驗證函數fn的錯誤', function () {
function fn() {
xxx;
}
assert.throws(fn)
})
})

三、運行

package.json文件寫入:
"scripts": {
"test": "mocha"
}
運行:
npm run test

四、運行結果

test.png

五、測試腳本解析

測試腳本里面應該包括一個或多個describe塊,每個describe塊應該包括一個或多個it塊。
1、describe塊稱為"測試套件"(test suite),表示一組相關的測試。它是一個函數,第一個參數是測試套件的名稱,第二個參數是一個實際執行的函數。
2、it塊稱為"測試用例"(test case),表示一個單獨的測試,是測試的最小單位。它也是一個函數,第一個參數是測試用例的名稱,第二個參數是一個實際執行的函數。

六、斷言

mocha支持任何可以拋出一個錯誤的斷言模塊。例如:should.js、better-assert、expect.js、unexpected、chai等這些斷言庫各有各的特點,根據使用場景來選擇斷言庫。
上面例子里使用的斷言庫使用的是node的內置模塊assert。下面為asser常用函數:
assert.ok(value[, message]):測試參數value是否為true。eg:
assert.ok(0,'is wrong')
//AssertionError [ERR_ASSERTION]: is wrong

assert.equal(actual, expected[, message]):判斷實際值actual和期望值expected是否相等。eg:
assert.equal(1, "2","This test is wrong");
//AssertionError [ERR_ASSERTION]: This test is wrong

assert.deepEqual(actual, expected[, message]):執行深度比較,判斷實際值actual和期望值expected是否相等。eg:
let list1 = [1, 2, 3, 4, 5];
let list2 = [1, 2, 3, 4, 5];
assert.deepEqual(list1, list2, '預期兩個數組應該有相同的屬性');

assert.throws(block[, error][, message]):聲明一個block用來拋出錯誤(error),error可以是構造函數,正則表達式或其他驗證器。eg:
assert.throws(
function() {
throw new Error("Wrong value");
},
Error,
'不符合預期的錯誤類型'
);

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容