assert.fail(message?: string | Error = ‘failed’)
使用提供的错误消息或默认错误消息抛出 AssertionError。
assert.throws(fn: function, error?: regExp | function | object | Error, message?: string)
检测fn函数抛出的错误是否与预期的错误error一样。
fn为一个会抛出错误的函数
error可以为多种类型,作为与抛出的错误对比的样本。
为regExp时,可以匹配抛出的错误。
assert.throws(() => {
throw new Error('it is a error')
}, /^Error: it is a error$/);
为function时,可以自定义验证函数
assert.throws(() => {
throw new Error('it is a error')
}, (err) => {
if ((err instanceof Error) && /error/.test(err)) {
return true;
}
});
为object时,将仅测试验证对象error上的属性。
const err = new TypeError('错误值');
err.code = 404;
err.foo = 'bar';
err.info = {
nested: true,
baz: 'text'
};
err.reg = /abc/i; // 正则表达式只有当验证对象包含相同的正则表达式时才通过。assert.throws(() => {
throw err;
}, {
name: 'TypeError',
message: '错误值'
info: {
nested: true,
baz: 'text'
// 使用嵌套对象需要存在所有属性。
// 否则验证将失败。
// 无法对嵌套属性使用正则表达式!
}
});
为Error时,用instanceof检测是否是该实例。
注意, error 不能是字符串。 如果提供了一个字符串作为第二个参数,则假定 error 被忽略,而字符串将用于 message。
assert.reject(asyncFn: function | promise, error?: regExp | function | object | Error, message?: string)
assert.throws的异步版本。
asyncFn为一个function时
立即执行该函数,如果该函数不返回promise,则返回一个被拒绝(reject)的 Promise。
如果该函数同步抛出一个错误,返回一个带有该错误的被拒绝的 Promise。
asyncFn为一个Promise时
等待Promise执行,检测是否被拒绝。
assert.ifError(value: any)
如果value不为null或者undefined就将value作为错误抛出。
在回调中测试error参数时,这很有用。









