这个简单的类只是一个例子:
class SomeClass{
getTemplateName() {
throw new Error('foo');
}
}
字符串
来测试某个代码是否抛出了异常:
describe('dome class', () => {
test('contains a method that will throw an exception', () => {
var sc = new SomeClass();
expect(sc.getTemplateName()).toThrow(new Error('foo'));
});
});
型
但它不起作用我做错了什么
3条答案
按热度按时间wf82jlnq1#
在Jest中,当你测试一个应该抛出错误的情况时,在测试函数的
expect()
Package 中,你需要提供一个额外的函数 Package 才能使它工作。错误:
字符串
右:
型
它应该使测试运行成功。
cl25kdpy2#
Jest docs说:
如果你想测试一个特定的错误是否被抛出,你可以给toThrow提供一个参数。这个参数可以是一个错误消息的字符串,一个错误的类,或者一个应该匹配错误的正则表达式。
所以你应该这样编码:
字符串
或者:
型
bsxbgnwa3#
20.x.x以下的Jest版本不支持您正在使用的语法。此功能据说“即将推出”。
在此期间,您可以执行以下操作:
字符串
型