开玩笑没有显示抛出的错误

时间:2019-01-28 17:48:15

标签: node.js jestjs

我正在使用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版本。

1 个答案:

答案 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