Новое для 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.