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