Jest не показывает ошибки, которые выбрасываются - PullRequest
0 голосов
/ 28 января 2019

Я использую jest для своих модульных тестов, и у меня возникает проблема, когда мой код генерирует непредвиденное исключение, jest не обрабатывает его.

Например:

async function func() {
    throw new Error('ERROR');
}

test('test', async () => {
    await func();
});

Iожидал, что jest покажет мне, где находится исключение, но все, что я получаю, это:

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 и использовать fail() в блоке catch?

Я использую последнюю версию 24.0.0.

1 Ответ

0 голосов
/ 29 января 2019

Я просто столкнулся с этим сам.В моем случае это вызвано пользовательским репортером, который использует Intellij IDEA, который не совместим с версией 24.0.0.Если вы понизите версию до 23.6.0, она будет работать так, как вы ожидаете.Чтобы получить реальную ошибку теста в версии 24.0.0, просто оберните оператор await в попытку / уловку так:

test('test', async () => {
     try {
         await func();
     } catch (e) {
         fail(e)
     }
})

Я отправил проблему с Intellij.Если вы хотите отследить проблему: jest-intellij-reporter не работает с TypeError

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...