如何检查 Jest 中异步抛出的错误类型?
Posted
技术标签:
【中文标题】如何检查 Jest 中异步抛出的错误类型?【英文标题】:How can I check the type of the error thrown asyncronously in Jest? 【发布时间】:2018-07-12 20:17:41 【问题描述】:假设我有这样的功能:
const f = async () =>
throw new Error('Huh???!');
;
我想测试它是否使用 Jest 抛出 RangeError
(而不仅仅是 Error
)。
test('f throws a RangeError', () =>
expect(f()).rejects.toThrowError(RangeError);
);
但是这个测试通过了。
【问题讨论】:
我不知道我是否正确,但您可以尝试在 try/catch 中await f()
并在 catch 中检查 typeof
错误。
这是一种选择,但rejects
是为了做await
ing
我刚刚发现***.com/q/46042613/1985912。
那不是async
【参考方案1】:
你可以在rejects
之后使用toBeInstanceOf
匹配器:
test('f throws a RangeError', () =>
expect(f()).rejects.toBeInstanceOf(RangeError);
);
【讨论】:
以上是关于如何检查 Jest 中异步抛出的错误类型?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 toThrow 和 Jest 断言异步方法抛出错误