Как написать модульный тест для перехвата исключения, которое исключение выдает в асинхронном блоке (наблюдаемый или обещание) в функции? - PullRequest
0 голосов
/ 17 июня 2019

Я хочу написать модульный тест для этой функции getData ().

getData(){
  this.service.getvalues().subscribe(
        results => {
        },
        err => {
            throw err;
        }
    );
}

Я пробовал это

it('', async(() => {
      serviceSpy.getvalues.and.returnValue(throwError({}));
      try {
        component.getData({});
      } catch (error) {
        console.log(error);
      }
    }));

Эта функция getData ничего не возвращает. Я поместил asnyc () в его блок, чтобы убедиться, что тест автоматически завершится, когда будут выполнены все асинхронные вызовы в этой зоне.

моя проблема в том, что я не могу уловить эту ошибку Потому что это исключение выбрасывает в асинхронный блок

1 Ответ

0 голосов
/ 17 июня 2019

Выдача ошибки приводит к ошибке, независимо от того, где это сделано.

Прошло много времени с тех пор, как я его использовал, но синтаксис для этого вида теста будет

it('', () => {
  serviceSpy.getvalues.and.returnValue(throwError({}));
  expect(() => component.getData({})).toThrow(/* some params */);
});

Не уверен, почему вы тоже используете асинхронный режим, поэтому я просто удалил его.

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