引入assert:
const assert = require('assert')
const strict = require('assert')
assert.AssertionError() assert抛出的所有错误都是该类的实例
const {message} = new assert.AssertionError({
//输出的错误信息
message:"noEqual",
//实际值
actual:1,
//比较值,期望值
expected:2,
//比较模式 equal strictEuqal等
operator:'strictEqual'
})
assert.equal(actual,expected,[message])
非严格相等
assert.equai(1,'1','noEqual') // 不会抛出错误 因为他们之间存在不严格相等关系
assert.strictEqual() 严格相等 采用tc39 someValue比较方法
assert.strictEqual(1,'1') //抛出错误
assert({name:'123'},{name:'123'}) //抛出错误 因为他们不属于同一个对象,在内存中的位置也不同
//同理,比较两个值完全一致的数组也会抛出错误
//因为他们也不属于真正意义上的 " 同一个数组 "
assert.deepEqual() 深度不严格相等
assert.deepEqual([1,2,3,['1',2,3]],[1,2,3,[true,2,3]])
//不会抛出错误 因为 '1'和 true 存在不严格相等的关系
assert.deepStrictEqual() 深度严格相等
只考虑可枚举的自身属性 + someValue比较方法,同时,对象的原型也会被严格相等比较
assert({name:'123'},{name:'123'}) //不会抛出错误
assert([[1,2,3],2,3],[[1,2,3],2,3] //抛出错误
assert.fail(actual,[message])
assert.ok(actual,[message])
//都不会抛出错误
assert.fail(false,'this is false')
assert.ok(true,'this is true')
相关链接: