1.全局安裝 mochahtml
npm install mocha -g複製代碼
2.nodejs assert 簡介node
strict模式:正則表達式
當使用 strict
模式時,任何 assert
函數都會使用嚴格函數模式的等式。 因此 assert.deepEqual()
會等同於 assert.deepStrictEqual()
。npm
使用方式:const assert = require('assert').strict;api
assert(value[, message]):assert.ok()
的別名。promise
value
<any> 要檢查是否爲真的值。
message
<string> |
<Error>
assert.deepStrictEqual(actual, expected[, message]):測試 actual
參數與 expected
參數是否深度相等。 深度相等意味着子對象中可枚舉的自身屬性也會按如下規則遞歸地比較。bash
assert.fail([message]):拋出 AssertionError
,並帶上提供的錯誤信息或默認的錯誤信息。 若是 message
參數是 Error
的實例,則會拋出它而不是 AssertionError
。異步
assert.ifError(value):若是 value
不爲 undefined
或 null
,則拋出 value
。 可用於測試回調函數的 error
參數。 堆棧蹤影會包含傳入 ifError()
的錯誤的全部幀,包括潛在的 ifError()
自身新增的幀。函數
assert.notDeepStrictEqual(actual, expected[, message]):測試 actual
參數與 expected
參數是否不深度全等。 與 assert.deepStrictEqual()
相反。測試
assert.ok(value[, message]):測試 value
是否爲真值。 至關於 assert.equal(!!value, true, message)
。
assert.rejects(block[, error][, message]):等待 block
的 promise 完成,若是 block
是一個函數,則當即調用該函數並等待返回的 promise 完成,而後檢查 promise 是否被 reject。若是 block
是一個函數且同步地拋出一個錯誤,則 assert.rejects()
會返回一個被 reject 的 Promise
並傳入該錯誤。 若是該函數沒有返回一個 promise,則 assert.rejects()
會返回一個被 reject 的 Promise
並傳入 ERR_INVALID_RETURN_VALUE
錯誤。 以上兩種狀況都會跳過錯誤處理函數。
該函數至關於 assert.throws()
,除了須要等待完成的異步特性。
error
能夠是 Class
、RegExp
、校驗函數、每一個屬性都會被測試的對象、或每一個屬性(包括不可枚舉的 message
和 name
屬性)都會被測試的錯誤實例。
若是指定了 message
,則當 block
沒被 reject 時,message
參數會做爲 AssertionError
的錯誤信息。
assert.strictEqual(actual, expected[, message]):使用 SameValue比較法測試 actual
參數與 expected
參數是否全等。
assert.throws(block[, error][, message]):斷言 block
函數會拋出錯誤。error
能夠是 Class
、RegExp
、校驗函數、每一個屬性都會被測試是否深度全等的校驗對象、或每一個屬性(包括不可枚舉的 message
和 name
屬性)都會被測試是否深度全等的錯誤實例。 當使用對象時,能夠使用正則表達式來校驗字符串屬性。若是指定了 message
參數,則當 block
函數不拋出錯誤時,message
參數會做爲 AssertionError
的錯誤信息。
3.mocha 對於TDD api 簡介
describe(description,fun):稱爲測試套件,表示一組相關的測試description:測試套件的名稱,fun:執行函數。
it(description,fun):表示一個單獨的測試,是測試的最小單位。description:測試用例名稱,fun:執行函數。
done():用於基於回調函數的異步測試,當done()被屢次執行則拋出錯誤。
describe塊中 測試用例鉤子
describe('hooks', function() {
before(function() {
// 在本區塊的全部測試用例以前執行
});
after(function() {
// 在本區塊的全部測試用例以後執行
});
beforeEach(function() {
// 在本區塊的每一個測試用例以前執行
});
afterEach(function() {
// 在本區塊的每一個測試用例以後執行
});
// test cases
});複製代碼
參考:http://www.ruanyifeng.com/blog/2015/12/a-mocha-tutorial-of-examples.html
https://mochajs.org
http://nodejs.cn/api/assert.html