nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepE
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模块中还有很多其他很有用的方法,狼蚁网站SEO优化列举几个,具体的请看
assert.notEqual(actual,expected[,message])
assert.notStrictEqual(actual,expected[message])
assert.ifError(value)
assert.fail(message)
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程