Я тестирую асинхронную функцию, используя jest.Код в функции находится в блоке try catch
с ошибками, которые перехватываются и обрабатываются, подобно следующему
export default async () => {
try {
await promisesAndThat();
} catch (e) {
// handle errors
}
}
Когда я запускаю npm test
, асинхронная функция выдает ошибку, как и ожидалось, и возвращаетрезультат в шутку, который затем жалуется на UnhandledPromiseRejectionWarning
и терпит неудачу при утверждении, , но тест проходит независимо.Пожалуйста, смотрите ниже для получения дополнительной информации:
/home/app # npm test
> node-js-base@1.0.0 test /home/app
> jest
(node:77) UnhandledPromiseRejectionWarning: Error: expect(received).toBe(expected) // Object.is equality
Expected value to be:
"Invalid context"
Received:
"Invalid parameters"
(node:77) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:77) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
PASS function/handler.test.js
✓ Should return true with valid parameters (8ms)
✓ Should return false with invalid parameters (4ms)
Test Suites: 1 passed, 1 total
Tests: 2 passed, 2 total
Snapshots: 0 total
Time: 1.276s
Ran all test suites.
Кто-нибудь знает, что здесь происходит не так?