欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比較

 更新時間:2017年09月18日 22:33:44   投稿:mdxy-dxy  
這篇文章主要介紹了node項目中遇到使用斷言測試程序,看了下nodejs的api之后,對nodejs中assert斷言的幾個方法做個簡單的記錄,需要的朋友可以參考下

1、equal()

equal(actual,expected[,message])

相當于使用 == 運算符比較兩個參數值actual和expected是否相等,如果相等不返回任何值,如果不相等則返回帶有message屬性的AssertionError,若message為undefined,則為默認的錯誤信息。

var assert = require('assert');
assert.equal('1','1');//通過 '1' == '1'
assert.equal('1',1);//通過,'1' == 1
assert.equal('q','q');//通過
assert.equal('abc','abc');//通過 
assert.equal('a','b');//不通過,拋出AssertionError
assert.equal([1,2],[1,2]);//不通過,不能比較數組
assert.equal({a:'string'},{a:'string'});//不通過,不能比較json數據等

== 運算符只是數值相等,并不比較類型相等
equal()方法不能比較數組,json等數據類型的數據,換句話說即不進行深度比較,數組和json數據的子對象不進行比較。

2、strictEqual()

strictEqual(actual,expected[,message])

從字面意思來看,就是equal()方法的嚴格版本,相當于===全等運算符,不僅比較數據值是否相等,還比較數據類型是否相同。跟equal()方法最大的不同就是這點。

var assert = require('assert');
assert.strictEqual('1',1);//不通過
assert.strictEqual(1,1);//通過 
assert.strictEqual('a','a');//通過
assert.equal('abc','abc');//通過 
assert.equal('a','b');//不通過,拋出AssertionError
assert.equal([1,2],[1,2]);//不通過,不能比較數組
assert.equal({a:'string'},{a:'string'});//不通過,不能比較json數據等

可以看到,這跟equal()方法得出的結果是不同的,比較要嚴格一些,其他地方都相同。

3 deepEqual()

deepEqual(actual,expected[,message])

前面不管是equal()方法還是strictEqual()都不能進行深度比較,對數組或者json數據格式的數據不能比較相同與否,使用此方法將可以完美解決這個問題。

var assert = require('assert');
assert.deepEqual([1,2],[1,2]);//通過,數組比較
assert.deepEqual({a:'1'},{a:'1'});//通過
assert.deepEqual([[1,2],[2]],[[1,2],[2]]);//通過,多維數組
assert.deepEqual({a:{b:1}},{a:{b:1}});//通過
assert.deepEqual(1,'1');//通過
assert.deepEqual([1],['1']);//通過

deepEqual()方法能夠比較數組和json等數據,也能比較一般數據,能夠進行更為深層次的數據比較。
deepEqual()方法比較并不嚴格,相當于 == 等于符號,只比較數值,不比較類型

4 strictDeepEqual()

strictDeepEqual(actual,expected[,message])
跟strictEqual()方法相似,相當于=== 全等運算符,不同的是能夠比較數組、json數據等深層的數據。

var assert = require('assert');
assert.deepEqual([1,2],[1,2]);//通過,數組比較
assert.deepEqual({a:'1'},{a:'1'});//通過
assert.deepEqual([[1,2],[2]],[[1,2],[2]]);//通過,多維數組
assert.deepEqual({a:{b:1}},{a:{b:1}});//通過
assert.deepEqual(1,'1');//不通過,類型錯誤
assert.deepEqual([1],['1']);//不通過 ,類型錯誤

deepStrictEqual()方法比deepEqual()更為嚴格,其他都相同。都能進行深層比較。

5 其他方法

assert模塊中還有很多其他很有用的方法,下面列舉幾個,具體的請看

Nodejs API

assert.notEqual(actual,expected[,message])
assert.notStrictEqual(actual,expected[message])
assert.ifError(value)
assert.fail(message)

相關文章

  • nodeJs項目在阿里云的簡單部署

    nodeJs項目在阿里云的簡單部署

    這篇文章主要為大家詳細介紹了nodeJs項目在阿里云的簡單部署,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • Node.js API詳解之 net模塊實例分析

    Node.js API詳解之 net模塊實例分析

    這篇文章主要介紹了Node.js API詳解之 net模塊,結合實例形式分析了Node.js API中net模塊基本函數、用法與使用技巧,需要的朋友可以參考下
    2020-05-05
  • ajax +NodeJS 實現圖片上傳實例

    ajax +NodeJS 實現圖片上傳實例

    本篇文章主要介紹了ajax +NodeJS 實現圖片上傳實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • node.js中的fs.openSync方法使用說明

    node.js中的fs.openSync方法使用說明

    這篇文章主要介紹了node.js中的fs.openSync方法使用說明,本文介紹了fs.openSync方法說明、語法、接收參數、使用實例和實現源碼,需要的朋友可以參考下
    2014-12-12
  • 淺談Nodejs應用主文件index.js

    淺談Nodejs應用主文件index.js

    這篇文章主要介紹了淺談Nodejs應用主文件index.js的相關資料,需要的朋友可以參考下
    2016-08-08
  • NodeJS讀取分析Nginx錯誤日志的方法

    NodeJS讀取分析Nginx錯誤日志的方法

    這篇文章主要介紹了NodeJS讀取分析Nginx錯誤日志的相關知識,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • node.js解決獲取圖片真實文件類型的問題

    node.js解決獲取圖片真實文件類型的問題

    這篇文章主要介紹了node.js解決獲取圖片真實文件類型的問題,本文根據二進制流及文件頭獲取文件類型mime-type,然后讀取文件二進制的頭信息,獲取其真實的文件類型,需要的朋友可以參考下
    2014-12-12
  • 解決node修改后需頻繁手動重啟的問題

    解決node修改后需頻繁手動重啟的問題

    今天小編就為大家分享一篇解決node修改后需頻繁手動重啟的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Node.js 制作實時多人游戲框架

    Node.js 制作實時多人游戲框架

    這篇文章主要介紹了Node.js 制作實時多人游戲框架,需要的朋友可以參考下
    2015-01-01
  • 使用pify實現Node.js回調函數的Promise化

    使用pify實現Node.js回調函數的Promise化

    使用pify庫,你可以非常便利地將任何遵循Node.js回調風格的函數轉換為返回Promise對象的函數,從而使得你的異步代碼更加清晰和易于維護,本文通過豐富的代碼示例引導你如何有效地利用pify,需要的朋友可以參考下
    2024-06-06

最新評論