Javascript Обещания: сценарий ошибки тестирования - PullRequest
2 голосов
/ 26 марта 2020

Как проверить обещание, которое отклоняется с ошибкой? (это ожидаемое поведение)

Я не могу понять, почему этот тест не проходит. Я ловлю ошибку, отклоненную, и тест все еще не проходит. Из примера, представленного на 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();
        });

1 Ответ

0 голосов
/ 26 марта 2020

Оказывается, это было из-за предыдущего теста, который не вызывал, и он выдает ошибку, убившую этот

...