亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

學習node.js 斷言的使用詳解

2024-05-06 16:49:11
字體:
來源:轉載
供稿:網友

assert模塊提供了一組簡單的斷言測試,分嚴格模式(strict)和遺留模式(legacy),嚴格模式下,對比的方式比較嚴格,比如說,0與'0'比較,會報錯,但在遺留模式下是可以通過的。官方推薦使用嚴格模式, 所以本文基于strict模式下學習。

如何使用嚴格模式

const assert = require('assert').strict; // 嚴格模式assert.equal(0, '0') // error

全局使用strict模式后,assert.equal() 與assert.strictEqual()的效果是一樣的。

如果不想全局使用的話,可以直接使用帶strict的方法。

const assert = require('assert') // 遺留模式assert.equal(0, '0') // successassert.strictEqual(0, '0') // error

assert.AssertionError

Error的子類,表示斷言失敗,assert模塊拋出的錯誤都是AssertionError的實例。

類似于下面這個class,實際上的AssertionError是由ES5寫的,下面這個只是方便理解傳入的參數

interface IOptions { message?: string; // 設置錯誤的信息 actual?: any; // 設置錯誤實例上的實際值 expected?: any; // 設置錯誤實例上的期望值 operator?: string; // 設置用于比較的操作或觸發錯誤的斷言函數 stackStartFn(): any; // 生成的堆棧跟蹤將移除所有幀直到提供的函數}class AssertionError extends Error { constructor(options: IOptions) {  // ... }}

assert(value: any, message?: string | Error)

檢測是否為真值,是assert.ok的別名。

assert.ok(value: any, message?: string | Error)

檢測value是否為真值。

如果不為真值,拋出屬性message為message參數值的AssertionError,如果未定義,為默認錯誤信息。

如果是Error的實例,則拋出Error實例。(以下關于message的使用都一樣)

assert.strictEqual(actual: any, expected: any, message?: string | Error)

檢測 actual參數和expected參數之間的嚴格相等性,使用sameValue比較。

assert.deepStrictEqual(actual: any, expected: any, message?: string | Error)

檢測actual參數和expected參數之間的深度嚴格相等性,深度比較意味著子對象的可枚舉的自身屬性也通過以下規則進行遞歸計算。

assert.notStrictEqual(actual: any, expected: any, message?: string | Error)

檢測 actual參數和expected參數之間的嚴格不相等性,使用sameValue比較。

assert.notDeepStrictEqual(actual: any, expected: any, message?: string | Error)

檢測actual參數和expected參數之間的深度嚴格不相等性,深度比較意味著子對象的可枚舉的自身屬性也通過以下規則進行遞歸計算。

assert.fail(message?: string | Error = 'failed')

使用提供的錯誤消息或默認錯誤消息拋出 AssertionError。

assert.throws(fn: function, error?: regExp | function | object | Error, message?: string)

檢測fn函數拋出的錯誤是否與預期的錯誤error一樣。

fn為一個會拋出錯誤的函數

error可以為多種類型,作為與拋出的錯誤對比的樣本。

為regExp時,可以匹配拋出的錯誤。

assert.throws(() => { throw new Error('it is a error')}, /^Error: it is a error$/);

為function時,可以自定義驗證函數

assert.throws(() => { throw new Error('it is a error')}, (err) => { if ((err instanceof Error) && /error/.test(err)) {  return true; }});

為object時,將僅測試驗證對象error上的屬性。

const err = new TypeError('錯誤值');err.code = 404;err.foo = 'bar';err.info = { nested: true, baz: 'text'};err.reg = /abc/i; // 正則表達式只有當驗證對象包含相同的正則表達式時才通過。assert.throws(() => { throw err;}, { name: 'TypeError', message: '錯誤值' info: {  nested: true,  baz: 'text'  // 使用嵌套對象需要存在所有屬性。  // 否則驗證將失敗。  // 無法對嵌套屬性使用正則表達式! }});

為Error時,用instanceof檢測是否是該實例。

注意, error 不能是字符串。 如果提供了一個字符串作為第二個參數,則假定 error 被忽略,而字符串將用于 message。

assert.reject(asyncFn: function | promise, error?: regExp | function | object | Error, message?: string)

assert.throws的異步版本。

asyncFn為一個function時

立即執行該函數,如果該函數不返回promise,則返回一個被拒絕(reject)的 Promise。
如果該函數同步拋出一個錯誤,返回一個帶有該錯誤的被拒絕的 Promise。

asyncFn為一個Promise時

等待Promise執行,檢測是否被拒絕。

assert.ifError(value: any)

如果value不為null或者undefined就將value作為錯誤拋出。

在回調中測試error參數時,這很有用。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲一区美女视频在线观看免费| 91av视频导航| 欧美性色19p| 国精产品一区一区三区有限在线| 91视频88av| 欧美乱妇40p| 日韩毛片中文字幕| 国产视频在线观看一区二区| 亚洲欧美中文在线视频| 96sao精品视频在线观看| 91超碰中文字幕久久精品| 国产欧美日韩最新| 国内精品久久久久久中文字幕| 久久国内精品一国内精品| 日本久久亚洲电影| 成人福利网站在线观看| 国产精品亚洲视频在线观看| 久久精品中文字幕| 不卡在线观看电视剧完整版| 97精品欧美一区二区三区| 亚洲无亚洲人成网站77777| 久久影视电视剧免费网站清宫辞电视| 97超碰国产精品女人人人爽| 少妇高潮久久久久久潘金莲| 91精品久久久久久久久久入口| 亚洲黄色在线看| 久久精品中文字幕电影| 国产69精品久久久久9| 欧美性xxxx极品高清hd直播| 欧美国产高跟鞋裸体秀xxxhd| 国产精品人人做人人爽| 久久视频免费在线播放| 久久精品人人做人人爽| 亚洲摸下面视频| 日本午夜精品理论片a级appf发布| 国产精品电影一区| 日韩av成人在线观看| 日韩av在线免费观看| 亚洲国模精品私拍| 国产精品视频内| 国产精品视频地址| 91精品国产色综合久久不卡98口| 亚洲a∨日韩av高清在线观看| 国模gogo一区二区大胆私拍| 韩国日本不卡在线| 日韩电影免费在线观看中文字幕| 久久综合久久美利坚合众国| 亚洲一区免费网站| 性日韩欧美在线视频| 日韩精品在线观看一区二区| 国产成人亚洲精品| 亚洲国产精品一区二区三区| 日日骚久久av| 成人免费看吃奶视频网站| 另类美女黄大片| 精品久久久av| www.欧美精品一二三区| 欧美日韩国产综合新一区| 亚洲黄页网在线观看| 九九久久久久99精品| 久久久久久亚洲精品中文字幕| 国产日韩欧美成人| 欧美色videos| 97在线日本国产| 亚洲第一精品自拍| 最近2019中文字幕mv免费看| 国产91对白在线播放| 欧美激情精品久久久久久| 亚洲精品久久久久久久久久久久久| 色天天综合狠狠色| 亚洲男人天堂2019| 在线性视频日韩欧美| 国产激情久久久| 欧美激情videos| 亚洲精品欧美日韩| 亚洲视频综合网| 欧美日韩精品在线播放| 亚洲在线视频观看| 久久久久久国产精品美女| 欧美影院成年免费版| 日韩欧美国产中文字幕| 奇米四色中文综合久久| 亚洲中国色老太| 国产三级精品网站| 国产精品第七影院| 亚洲最大中文字幕| 久久激情五月丁香伊人| 91亚洲va在线va天堂va国| 久久91精品国产91久久久| 日本高清不卡的在线| 国产精品久久久久久av福利| 国产精品久久久久aaaa九色| 中文字幕成人精品久久不卡| 欧美激情在线观看视频| 国产精品三级在线| 日韩免费电影在线观看| 亚洲天堂av电影| 一本色道久久综合狠狠躁篇怎么玩| 狠狠做深爱婷婷久久综合一区| 国产日韩在线播放| 亚洲精选在线观看| www日韩中文字幕在线看| 成人欧美一区二区三区在线湿哒哒| 国产91av在线| 亚洲人成网站999久久久综合| 日韩美女视频免费在线观看| 国产欧美一区二区三区久久| 亚洲黄色www网站| 亚洲护士老师的毛茸茸最新章节| 久久久精品视频成人| 九九热在线精品视频| 日韩激情视频在线播放| 国产精品九九久久久久久久| 亚洲色图美腿丝袜| 亚洲第一区中文99精品| 亚洲bt天天射| 日韩极品精品视频免费观看| 亚洲欧美日韩中文在线制服| 在线观看精品自拍私拍| 日韩av免费观影| 欧美日韩在线视频一区| 成人有码视频在线播放| 欧美黑人巨大精品一区二区| 91成人免费观看网站| 亚洲成年人在线| 欧美老肥婆性猛交视频| 福利二区91精品bt7086| 国产美女搞久久| 美女国内精品自产拍在线播放| 国产精品爽爽爽爽爽爽在线观看| 亚洲日本aⅴ片在线观看香蕉| 欧美精品激情在线| 久久精品99久久久久久久久| 日韩国产精品一区| 91亚洲午夜在线| 亚洲精品www久久久久久广东| 国产精品激情av电影在线观看| 欧美精品少妇videofree| 久久精品国产一区二区三区| 欧美日韩午夜视频在线观看| 日韩经典一区二区三区| 国产精品流白浆视频| 欧美视频国产精品| 国产精品扒开腿爽爽爽视频| 欧美激情aaaa| 国模吧一区二区三区| 日韩精品福利在线| 91精品国产91久久久久久最新| 91精品国产综合久久香蕉922| 欧美日韩在线观看视频| 欧美极品少妇xxxxⅹ裸体艺术| 亚洲欧美第一页| 亚洲亚裔videos黑人hd| 欧洲成人性视频| 日韩一区二区精品视频| 欧美日韩视频在线| 欧美日韩在线视频一区二区| 欧美夫妻性生活视频| 一区二区三区www| 精品中文字幕久久久久久| 4p变态网欧美系列| 欧美日韩福利在线观看| 欧美日韩中文字幕日韩欧美| 久久男人av资源网站|