assert.throws()函式詳解
阿新 • • 發佈:2018-11-05
assert.throws(block[, error][, message])
期望 block 函式丟擲一個錯誤。
如果指定 error,它可以是一個建構函式、正則表示式或驗證函式。
如果指定 message,如果 block 因為失敗而丟擲錯誤,message 會是由 AssertionError 提供的值。
驗證使用建構函式例項:
assert.throws(
() => {
throw new Error('Wrong value');
},
Error
);
使用 RegExp 驗證錯誤資訊:
assert.throws( () => { throw new Error('Wrong value'); }, /value/ );
自定義錯誤驗證:
assert.throws(
() => {
throw new Error('Wrong value');
},
function (err) {
if ((err instanceof Error) && /value/.test(err)) {
return true;
}
},
'unexpected error'
);
請注意,Error 不能是字串。如果字串是作為第二個引數,那麼 error 會被假定省略,字串將會使用 message 替代。這很容易導致丟失錯誤:
// THIS IS A MISTAKE! DO NOT DO THIS!
assert.throws(myFunction, 'missing foo', 'did not throw with expected message');
// Do this instead.
assert.throws(myFunction, /missing foo/, 'did not throw with expected message');