节点内置对象assert1.assert主要做什么?assert模块是Node内置的模块,主要用于断言。如果表达式不符合预期,则抛出错误,可用于测试模块功能,常用的有几个。2、assert使用的一般概念:*actual:实际值*expected:期望值*message:报错时抛出的error参数1.Assertconstassert=require('assert');断言(真);//确定断言(1);//确定断言(假);//抛出"AssertionError:false==true"assert(0);//throws"AssertionError:0==true"assert(false,'it\'sfalse');//throws"AssertionError:it'sfalse"2.assert.deepEqual(actual,expected[,message])比较实际值是否等于预期值。等同于===constassert=require('assert');constobj1={a:{b:1}};constobj2={a:{b:2}};constobj3={a:{b:1}};constobj4=Object.create(obj1);assert.deepEqual(obj1,obj1);//OK,对象等于它自己assert.deepEqual(obj1,obj2);3.assert.assert.deepStrictEqual(actual,expected[,message]))注意deepStrictEqual等价于===constassert=require('assert');assert.deepEqual({a:1},{a:'1'});//好的,因为1=='1'assert.deepStrictEqual({a:1},{a:'1'});//AssertionError:{a:1}deepStrictEqual{a:'1'}//因为1!=='1'usingstrictequality4.assert.doesNotThrow(block,error)doesNotThrow预计会有所不同,预计某个代码块不会抛出错误assert.doesNotThrow(()=>{thrownewTypeError('Wrongvalue');},SyntaxError);5.assert.equal(actual,expected[,message])注意点:equal方法使用相等运算符(==)代替严格运算符(===)进行比较操作。constassert=require('assert');assert.equal(1,1);//好的,1==1assert.equal(1,'1');//好的,1=='1'assert.equal(1,2);//AssertionError:1==2assert.equal({a:{b:1}},{a:{b:1}});6.assert.fail(actual,expected,message,operator)fail方法用于抛出一个错误constassert=require('assert');assert.fail(1,2,undefined,'>');//AssertionError:1>2assert.fail(1,2,'whoops','>');7.assert.ifError(value)ifError方法判断某个表达式是否为falseconstassert=require('assert');assert.ifError(0);//OKassert.ifError(1);//抛出1assert.ifError('error');//抛出'error'assert.ifError(newError());//抛出Error8.assert.notDeepEqual(actual,expected[,message])constassert=require('assert');constobj1={a:{b:1}};constobj2={a:{b:2}};constobj3={a:{b:1}};constobj4=Object.create(obj1);assert.notDeepEqual(obj1,obj1);//AssertionError:{a:{b:1}}notDeepEqual{a:{b:1}}assert.notDeepEqual(obj1,obj2);//OK,obj1和obj2并不深度相等9.assert.notEqual(actual,expected[,message])constassert=require('assert');assert.notEqual(1,2);//确定assert.notEqual(1,1);//断言错误:1!=1assert.notEqual(1,'1');//AssertionError:1!='1'10.assert.notStrictEqual(actual,expected[,message])比较值,等价于==constassert=require('assert');assert.notDeepEqual({a:1},{a:'1'});//AssertionError:{a:1}notDeepEqual{a:'1'}assert.notDeepStrictEqual({a:1},{a:'1'});//OK11.assert.ok(value[,message])ok是assert方法的另一个名字,和assert方法完全一样constassert=require('断言');断言。确定(真);//确定assert.ok(1);//确定assert.ok(false);//抛出“AssertionError:false==true”断言。好的(0);//抛出“AssertionError:0==true”assert.ok(false,'it\'sfalse');12.assert.strictEqual(actual,expected[,message])等价于比较===constassert=require('assert');断言。严格相等(1、2);//断言错误:1===2断言。严格相等(1,1);//确定断言。strictEqual(1,'1');//AssertionError:1==='1'13.assert.throws(block,error)throws方法期望一个代码块抛出错误,抛出的错误满足指定条件assert.throws(()=>{thrownewError('Wrongvalue');},Error);*nodejs环境:*参考文章https://nodejs.org/api/assert...
