Как проверить обещание, которое отклоняется с ошибкой? (это ожидаемое поведение)
Я не могу понять, почему этот тест не проходит. Я ловлю ошибку, отклоненную, и тест все еще не проходит. Из примера, представленного на https://www.sitepoint.com/promises-in-javascript-unit-tests-the-definitive-guide/, это должно работать, и не может понять, как это должно быть на самом деле. Появляются оба журнала консоли.
it('shows that even an error occurs the test passes', (done) => {
const promise = new Promise((resolve, reject) => {
console.log('error promise is called');
setTimeout(() => {
reject(new Error('dummy error thrown'));
}, 100);
})
promise.then(() => {});
promise.catch((e) => {
console.log('error caught');
done();
});
});
1) promise behaviour in tests (async) - base test cases shows that even an error occurs the test passes:
Uncaught Error: dummy error thrown
at Timeout.setTimeout [as _onTimeout] (test\promise-spec.js:24:17)
Попытка, как это, все еще не удается
promise
.then(() => {})
.catch((e) => {
console.log('error caught');
done();
});