Тестирование сервиса без выполнения маршрутизации - PullRequest
0 голосов
/ 16 марта 2020

Новое для Angular тестирования. Когда я запускаю тесты, я получаю любую ошибку, которую я не могу сопоставить ни с какими маршрутами. Я думаю, это потому, что я использую .callThrough (). Вот тест:

it('should update categorySelected when onCategorySelected is called with new category', 
fakeAsync(() => {
    spyOn(navigationService, 'onCategorySelected').and.callThrough();
    fixture.ngZone.run(() => {
      component.categorySelected = mockCategory1;
      navigationService.categorySelected = mockCategory1;
      component.onCategorySelected(mockCategory2, null);
      expect(navigationService.onCategorySelected).toHaveBeenCalled();
      expect(navigationService.categorySelected).toBe(mockCategory2);
      expect(component.categorySelected.refCode).toBe(mockCategory2.code);
    });
  }));

component.onCategorySelected () просто вызывает navigationService.onCategorySelected () (который вызывает navigatebyUrl ()) . Что я делаю не так, что получаю эту ошибку? Это потому, что .callThrough () вызывает фактическую реализацию. Но я не очень хочу этого. Как я могу просто утверждать последние два утверждения без маршрутизации? Спасибо за любые полезные советы.

Error: Uncaught (in promise): Error: Cannot match any routes.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...