卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

Node.js學(xué)習(xí)之?dāng)嘌詀ssert的使用

一、斷言概述斷言是編程術(shù)語(yǔ),表示為一些布爾表達(dá)式,程序員相信在程序中的某個(gè)特定點(diǎn)該表達(dá)式值為真。斷言可以在測(cè)試時(shí)啟用,以驗(yàn)證代碼的正確性,并在部署時(shí)禁用,使得代碼更加穩(wěn)定和不易出錯(cuò)。同時(shí),斷言還可以在

一、斷言概述

斷言是編程術(shù)語(yǔ),表示為一些布爾表達(dá)式,程序員相信在程序中的某個(gè)特定點(diǎn)該表達(dá)式值為真。斷言可以在測(cè)試時(shí)啟用,以驗(yàn)證代碼的正確性,并在部署時(shí)禁用,使得代碼更加穩(wěn)定和不易出錯(cuò)。同時(shí),斷言還可以在最終用戶(hù)遇到問(wèn)題時(shí)重新啟用,方便問(wèn)題排查。在Node.js中,有十多個(gè)斷言測(cè)試的函數(shù),可以用于測(cè)試不變式。

二、判斷值是否為真

判斷值是否為真有以下兩個(gè)斷言測(cè)試函數(shù):

2.1 assert(value[, message])

這個(gè)測(cè)試函數(shù)在value為true時(shí)通過(guò)斷言測(cè)試,否則拋出AssertionError。如果沒(méi)有指定message參數(shù),會(huì)使用默認(rèn)的錯(cuò)誤信息。

2.2 assert.ok(value[, message])

assert.ok()與assert()的作用是一樣的,都是測(cè)試value是否為真值。用法也一樣,所以可以將assert()視為assert.ok()的語(yǔ)法糖。

三、判斷預(yù)期值和實(shí)際值相等()

這一組里面有兩個(gè)測(cè)試函數(shù),用于測(cè)試預(yù)期值與實(shí)際值是否相等,如果相等則斷言通過(guò),否則拋出AssertionError。

3.1 assert.equal(actual, expected[, message])

assert.equal()用于測(cè)試期望值和實(shí)際值是否相等。對(duì)于值類(lèi)型的比較,比較的是兩個(gè)值是否相等;對(duì)于引用類(lèi)型的比較,比較的是值的引用。

3.2 (actual, expected[, message])

()同樣也是測(cè)試預(yù)期值和實(shí)際值是否相等,使用的仍然是()。但是與equal()不同的是,deepEqual()在對(duì)引用類(lèi)型進(jìn)行比較的時(shí)候,比較的是對(duì)象的屬性值。

四、判斷預(yù)期值和實(shí)際值全等()

這組測(cè)試函數(shù)是用于判斷預(yù)期值和實(shí)際值是否深度相等的,內(nèi)部使用的是(),所以對(duì)象的原型也會(huì)進(jìn)行比較,值得類(lèi)型也是比較的范圍。

4.1 (actual, expected[, message])

由于內(nèi)部使用的是全等(),所以對(duì)象的原型也會(huì)計(jì)入比較的范圍。

4.2 (actual, expected[, message])

strictEqual()是equal()的加強(qiáng)版,考慮了數(shù)據(jù)類(lèi)型。如果actual expected,則斷言通過(guò),否則拋出AssertionError。

五、判斷預(yù)期值和實(shí)際值不相等(!)

這兒總結(jié)一下判斷預(yù)期值和實(shí)際值不相等的兩個(gè)測(cè)試函數(shù),實(shí)際上就是上面(三)的逆運(yùn)算。

5.1 (actual, expected[, message])

notEqual()為equal()的逆運(yùn)算,如果actual ! expected則斷言通過(guò)。

5.2 (actual, expected[, message])

notDeepEqual()為deepEqual()的逆運(yùn)算,如果actual ! expected則斷言通過(guò)。

六、判斷預(yù)期值和實(shí)際值嚴(yán)格不相等(!)

這兒總結(jié)一下判斷預(yù)期值和實(shí)際值嚴(yán)格不相等的兩個(gè)測(cè)試函數(shù),實(shí)際上就是上面(四)的逆運(yùn)算。

6.1 (actual, expected[, message])

如果actual ! expected則斷言通過(guò)。

6.2 (actual, expected[, message])

notDeepStrictEqual()就是deepStrictEqual()的逆運(yùn)算,如果actual ! expected則斷言通過(guò)。

七、斷言錯(cuò)誤并拋出

這一組有四個(gè)測(cè)試函數(shù),是對(duì)錯(cuò)誤進(jìn)行的處理。

7.1 (message)

這個(gè)測(cè)試函數(shù)可以用于主動(dòng)拋出帶有message屬性的AssertionError對(duì)象。

7.2 (actual, expected[, message[, operator[, stackStartFunction]]])

該測(cè)試函數(shù)用于主動(dòng)拋出自定義錯(cuò)誤信息,拋出錯(cuò)誤信息格式為:actual 參數(shù) operator 參數(shù) expected 參數(shù)。

7.3 (block, error, message)

如果block拋出的錯(cuò)誤滿(mǎn)足error參數(shù),則斷言通過(guò),否則拋出block中的錯(cuò)誤。error參數(shù)可以

標(biāo)簽: