assert.fail("BLUE","PINK");
// AssertionError [ERR_ASSERTION]: 'BLUE' != 'PINK'上面代码不提供【message】和【operator】,则【operator】默认为 【!=】
assert.fail("BLUE","PINK","自定义的错误信息");
// AssertionError [ERR_ASSERTION]: 自定义的错误信息assert.fail("BLUE","PINK","自定义的错误信息","?",()=>{
console.log("hello");
});
// AssertionError [ERR_ASSERTION]: 自定义的错误信息
上面代码提供【message】,这时候 【actual】、【operator】、【expected】等参数会被列入错误对象属性中
assert.fail("BLUE","PINK",undefined);
// AssertionError [ERR_ASSERTION]: 'BLUE' undefined 'PINK'assert.fail("BLUE","PINK",undefined,"?");
// AssertionError [ERR_ASSERTION]: 'BLUE' ? 'PINK'
上面代码是【message】为 undefined 时,会检测【operator】参数,【
operator?operator:undefined 】7.3 assert.throws(block,error, message)
参数说明:
block | Function
error | RegExp | Function
message | any
【说明!!】如果block抛出的错误满足error参数,也就是抛出错误与期望一致,则断言通过,否则抛出block中的错误,如果block不抛出错误,则抛出【AssertionError 】。
【提示!!】error 参数可以是构造函数、正则表达式、或自定义函数。
assert.throws(
() => {
throw new Error('错误信息');
},
Error
);上面代码中 error 参数为构造函数,【block】抛出的错误与预期的一致,所以断言通过。
assert.throws(
() => {
throw new Error('错误信息');
},
/错误/
);上面代码中 error 参数为正则表达式,【block】抛出的错误满足正则表达式,所以断言通过。
【注意!!】error 参数不能是字符串。 如果第二个参数是字符串,则视为省略 error 参数,传入的字符串会被用于 【message】 参数,
// 这是错误的!不要这么做!
assert.throws(myFunction, '错误信息', '没有抛出期望的信息');// 应该这么做。
assert.throws(myFunction, /错误信息/, '没有抛出期望的信息');
下面代码,【error】 参数为自定义函数
assert.throws(
() => {
throw new Error('错误信息');
},
function (err) {
if ((err instanceof Error) && /错误/.test(err)) {
return true;
}
},
'不是期望的错误'
);7.4 assert.doesNotThrow(block, error, message)









