我正在使用一些代码,我需要测试函数抛出的异常类型(是 TypeError、ReferenceError 等吗?)。
我当前的测试框架是 AVA,我可以将其作为第二个参数 t.throws
方法进行测试,如下所示:
it('should throw Error with message \'UNKNOWN ERROR\' when no params were passed', (t) => {
const error = t.throws(() => {
throwError();
}, TypeError);
t.is(error.message, 'UNKNOWN ERROR');
});
我开始用 Jest 重写我的测试,但找不到如何轻松地做到这一点。甚至可能吗?
原文由 bartsmykla 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Jest 中,您必须将一个函数传递给
expect(function).toThrow(<blank or type of error>)
。例子:
或者,如果您还想检查错误消息:
如果您需要测试现有函数是否使用一组参数抛出,则必须将其包装在
expect()
中的匿名函数中。例子: