在节点js中,我们使用assert.rejects
来断言由异步函数引起的错误。我发现TypeScript中缺少rejects
方法,如何在TypeScript中断言异步错误?
我认为使用此功能将解决您的问题:
import * as assert from 'assert';
async function assertThrowsAsync(fn, regExp) {
let f = () => {};
try {
await fn();
} catch(e) {
f = () => {throw e};
} finally {
assert.throws(f, regExp);
}
}
并在您的测试中使用它:
await assertThrowsAsync(async () => async_function_call_here(), /Error/);
JavaScript和TypeScript都没有提供自己的assert
功能。如果你搜索“JavaScript assert”或类似的东西(记住TypeScript是JavaScript加静态类型和一两个其他小东西),你会发现可以选择的各种库。