Angular UNIT Метод тестирования с недопониманием .subscribe - PullRequest
1 голос
/ 26 апреля 2020

Я недавно начал изучать Angular тестирование и столкнулся с неправильным пониманием концепции тестирования UNIT. Например, у меня есть диалог с двумя кнопками: Подтвердите удаление и Отмена. Когда пользователь нажимает кнопку «Подтвердить удаление», вызывается метод http-сервиса и диалог закрывается. Звучит просто. Вот код:

confirmDelete() {
   this.httpService.delete(item)
       .subscribe(() => this.dialogRef.close(),
                  (err) => this.message = 'Some text');
} 

И мой тест для этой функции:

it('should call service delete method and close the dialog', async( () => {
   spyOn(dialogRef, 'close'); // I have mockDialogRef;
   component.confirmDelete();
   fixture.whenStable().then(() => {
      fixture.detectChanges();
      expect(deleteSpy.calls.any().toBe(true)); // Spy on delete method
      expect(dialogRef.close).toHaveBeenCalled();
   });
}));

И он работал нормально. Кажется, был вызван метод удаления, и диалог был закрыт. Но мой вопрос Что мы должны тестировать в таких методах? Должны ли мы всегда проверять вещи внутри метода подписки или только эти сервисные методы вызываются? И должен ли я проверить здесь случай, если сервер вернет ошибку? Итак, извините за глупый вопрос, но я действительно запутался. Надеюсь, вы, ребята, поможете мне (

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