gpt4 book ai didi

javascript - 如何在 Jest 中测试抛出异常的类型

转载 作者:IT王子 更新时间:2023-10-29 02:53:36 25 4
gpt4 key购买 nike

我正在处理一些代码,我需要在其中测试函数抛出的异常类型(是 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 重写我的测试,但找不到如何轻松地做到这一点。有可能吗?

最佳答案

在 Jest 中,你必须将一个函数传递给 expect(function).toThrow(<blank or type of error>) .

例子:

test("Test description", () => {
const t = () => {
throw new TypeError();
};
expect(t).toThrow(TypeError);
});

或者如果您还想检查错误消息:

test("Test description", () => {
const t = () => {
throw new TypeError("UNKNOWN ERROR");
};
expect(t).toThrow(TypeError);
expect(t).toThrow("UNKNOWN ERROR");
});

如果您需要测试一个现有函数是否会抛出一组参数,您必须将它包装在一个匿名函数中 expect() .

例子:

test("Test description", () => {
expect(() => {http.get(yourUrl, yourCallbackFn)}).toThrow(TypeError);
});

关于javascript - 如何在 Jest 中测试抛出异常的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46042613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com