我正在使用jest进行单元测试,但是当我的代码引发意外异常时,jest无法对其进行处理,我遇到了一个问题。
例如:
async function func() {
throw new Error('ERROR');
}
test('test', async () => {
await func();
});
我很乐意告诉我例外在哪里,但我得到的只是:
TypeError: jasmine.Spec.isPendingSpecException is not a function
at returnValue.then.error (node_modules/jest-config/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:112:28)
我应该用try / catch包装测试函数,并在catch块上使用fail()
吗?
我正在使用最新的24.0.0
版本。
答案 0 :(得分:1)
我自己碰到了这个。就我而言,这是由Intellij IDEA使用的自定义报告程序引起的,该报告程序与24.0.0版本不兼容。如果降级到23.6.0,它将按预期工作。要获得版本24.0.0中的实际测试错误,只需将await语句包装在try / catch中,如下所示:
test('test', async () => {
try {
await func();
} catch (e) {
fail(e)
}
})
我已提交Intellij问题。如果您要跟踪问题,请执行以下操作:jest-intellij-reporter is failing with TypeError