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

前端之家收集整理的这篇文章主要介绍了nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1、equal()

equal(actual,expected[,message])

相当于使用 == 运算符比较两个参数值actual和expected是否相等,如果相等不返回任何值,如果不相等则返回带有message属性的AssertionError,若message为undefined,则为默认的错误信息。

== 运算符只是数值相等,并不比较类型相等 equal()方法不能比较数组,json等数据类型的数据,换句话说即不进行深度比较,数组和json数据的子对象不进行比较。

2、strictEqual()

strictEqual(actual,message])

从字面意思来看,就是equal()方法的严格版本,相当于===全等运算符,不仅比较数据值是否相等,还比较数据类型是否相同。跟equal()方法最大的不同就是这点。

可以看到,这跟equal()方法得出的结果是不同的,比较要严格一些,其他地方都相同。

3 deepEqual()

deepEqual(actual,message])

前面不管是equal()方法还是strictEqual()都不能进行深度比较,对数组或者json数据格式的数据不能比较相同与否,使用此方法将可以完美解决这个问题。

deepEqual()方法能够比较数组和json等数据,也能比较一般数据,能够进行更为深层次的数据比较。 deepEqual()方法比较并不严格,相当于 == 等于符号,只比较数值,不比较类型

4 strictDeepEqual()

strictDeepEqual(actual,message]) 跟strictEqual()方法相似,相当于=== 全等运算符,不同的是能够比较数组、json数据等深层的数据。

错误 assert.deepEqual([1],['1']);//不通过 ,类型错误

deepStrictEqual()方法比deepEqual()更为严格,其他都相同。都能进行深层比较。

5 其他方法

assert模块中还有很多其他很有用的方法,下面列举几个,具体的请看

Nodejs API

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

猜你在找的Node.js相关文章