Node.js的斷言模塊assert

首先先引入斷言assert模塊

var assert = require('assert');

1.assert(value, message), assert.ok(value, [message]) //判斷中值是否為true

assert.ifError(value) //測試值是否不為 false榜贴,當(dāng)為 true 時拋出存皂。常用于回調(diào)中第一個 error 參數(shù)的檢查。

var a = 0;
assert(a,'這里需要值為true');   //AssertionError: 這里需要值為true
assert.ok(a,'這里也要為true');  // AssertionError: 這里也要為true

2.assert.fail(actual, expected, message, operator) //拋出異常,有message時顯示message叼屠,沒有使用operator作為為分隔符

var a = 0;
assert.fail(a,1,'a婉烟!=1','<'); // AssertionError: a!=1
assert.fail(a,2,'','<');    // AssertionError: 0 < 2

3.assert.equal(actual, expected, [message]) //("=="判斷)是否相等 相反:notEqual

assert.strictEqual(actual, expected, [message]) //("==="判斷)是否相等 相反:notStrictEqual


var a = 2;
var a='2';

assert.equal(a,b,'a,b不相等 ==')
assert.notEqual(a,b,'a,b相等')      // AssertionError: a,b相等
assert.strictEqual(a,b,'a,b不完全相等 ===')  // AssertionError: a,b不完全相等 ===

4.assert.deepEqual(actual, expected[, message])、// 是否深度匹配 相反: notDeepEqual

var buf1 = new Buffer('abc');
var buf2 = new Buffer('abc');

assert.strictEqual(buf1, buf2, 'buf1和buf2不一樣');  //AssertionError: buf1和buf2不一樣
assert.notDeepEqual(buf1, buf2, 'buf1和buf2一樣');  //AssertionError: buf1和buf2一樣

5.assert.throws(block, [error], [message]) //聲明一個block用于拋出錯誤育瓜,'error'可以是構(gòu)造函數(shù),驗(yàn)證函數(shù)或者正則表達(dá)式

assert.doesNotThrow(block, [message])//聲明模塊不拋出錯誤

//構(gòu)造函數(shù)
assert.throws(
  function() {
    throw new Error("Wrong value");
  },
  Error
);

//正則
assert.throws(
  function() {
    throw new Error("Wrong value");
  },
  /value/
);

//自定義錯誤
assert.throws(
  function() {
    throw new Error("Wrong value");
  },
  function(err) {
    if ( (err instanceof Error) && /value/.test(err) ) {
      return true;
    }
  },
  "unexpected error"
);

轉(zhuǎn)載自https://www.cnblogs.com/hong7zai/p/5909914.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末栽烂,一起剝皮案震驚了整個濱河市躏仇,隨后出現(xiàn)的幾起案子恋脚,更是在濱河造成了極大的恐慌,老刑警劉巖焰手,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件糟描,死亡現(xiàn)場離奇詭異,居然都是意外死亡书妻,警方通過查閱死者的電腦和手機(jī)船响,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來躲履,“玉大人见间,你說我怎么就攤上這事」げ拢” “怎么了米诉?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長篷帅。 經(jīng)常有香客問我史侣,道長,這世上最難降的妖魔是什么犹褒? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任抵窒,我火速辦了婚禮,結(jié)果婚禮上叠骑,老公的妹妹穿的比我還像新娘李皇。我一直安慰自己,他們只是感情好宙枷,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布掉房。 她就那樣靜靜地躺著,像睡著了一般慰丛。 火紅的嫁衣襯著肌膚如雪卓囚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天诅病,我揣著相機(jī)與錄音哪亿,去河邊找鬼。 笑死贤笆,一個胖子當(dāng)著我的面吹牛蝇棉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播芥永,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼篡殷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了埋涧?” 一聲冷哼從身側(cè)響起板辽,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤奇瘦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后劲弦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耳标,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年邑跪,在試婚紗的時候發(fā)現(xiàn)自己被綠了麻捻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡呀袱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出郑叠,到底是詐尸還是另有隱情夜赵,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布乡革,位于F島的核電站寇僧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏沸版。R本人自食惡果不足惜嘁傀,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望视粮。 院中可真熱鬧细办,春花似錦、人聲如沸蕾殴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钓觉。三九已至茴肥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間荡灾,已是汗流浹背瓤狐。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留批幌,地道東北人础锐。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像逼裆,于是被迫代替她去往敵國和親郁稍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容