主要是整理做爲學習筆記,方便往後複習
複製代碼
建立 test.js 文件node
// test.js
const assert = require('assert')
// 待測試代碼
function sum(...arr) {
return arr.reduce((p, n) => p + n)
}
// 測試代碼
assert(sum(1, 2) === 3, ' 預期 sum(1, 2) 返回 3')
複製代碼
執行 test.js, node test.js
npm
assert.js
錯,則測試沒有經過assert
模塊很是簡單,它斷言一個表達式爲true。若是斷言失敗,就拋出Error函數
在一個 js 中常常會寫不少測試代碼,若是有一條報錯,那麼以後的測試將不會執行。有什麼辦法能夠執行一次,就知道哪些測試沒有經過呢? mocha
, 這裏不對 mocha
過多講解,只給出一個例子學習
安裝 npm install mocha -g
測試
// test.js
const assert = require('assert')
// 待測試代碼
function sum(...arr) {
return arr.reduce((p, n) => p + n)
}
describe('個人第一次測試', () => {
it('sum(1, 2) should return 3', () => {
// 測試代碼
assert(sum(1, 2) === 3, ' 預期 sum(1, 2) 返回 3')33')
})
})
複製代碼
執行 mocha ./test.js
優化
value
爲 true 時,測試經過value
爲 false 時,測試不經過經過,拋出帶有 message
的錯誤同 assert(value[, message])
ui
actual
== expected
爲 true 時,測試經過actual
== expected
爲 false 時,測試不經過經過,拋出帶有 message
的錯誤actual
=== expected
爲 true 時,測試經過actual
=== expected
爲 false 時,測試不經過經過,拋出帶有 message
的錯誤測試 actual
參數和 expected
參數之間的嚴格不相等,與 assert.notStrictEqual()
相反spa
測試 actual
參數和 expected
參數之間的深度相等。 深度相等意味着子對象的可枚舉的自身屬性也經過如下規則進行遞歸計算。code
若是值不相等,則拋出 AssertionError
,並將 message
屬性設置爲等於 message
參數的值對象
測試深度嚴格的不相等。 與 assert.deepStrictEqual()
相反。
指望 fn
函數拋出錯誤
error
<RegExp> | <Function> | <Object> | <Error>執行順序以下
fn
是否拋出錯誤error
深度相等message
的錯誤斷言 fn
函數不會拋出錯誤
若是 fn
拋出錯誤而且它與 error
參數指定的類型相同,則拋出 AssertionError
若是 value
不爲 undefined
或 null
,則拋出 valu
拋出帶有 message
的錯誤