Angular, проверять, какой компонент создается при навигации по маршрутизатору - PullRequest
0 голосов
/ 03 мая 2018

Я хотел бы знать, есть ли способ проверить, какой компонент создается при переходе к маршруту.

У меня есть этот маршрут:

const routes: Routes = [{path: ':anyString', component: AnyStringComponent}];

Я хочу проверить с помощью юнит-теста:

router.navigate(['azdfz4896']);
// expect instantiated component to be AnyStringComponent

Есть ли способ проверить это?

1 Ответ

0 голосов
/ 03 мая 2018

вы можете смоделировать ActivatedRoute и попробовать:

route.snapshot._routeConfig.component.name

для получения имени компонента из снимка

ActivateRoute mock:

export class MockActivatedRoute implements ActivatedRoute{
 component : Type<any>|string;
 snapshot : ActivatedRouteSnapshot;
 url : Observable<UrlSegment[]>;
 params : Observable<Params>;
 queryParams : Observable<Params>;
 data : Observable<Data>;
 outlet : string;
 ...  
}

...

ваш тест

router = TestBed.get(Router);
location = TestBed.get(Location);
router.initialNavigation();
....
it('navigate to "search" takes you to /search', fakeAsync(() => {
  route = new MockActivatedRoute();
  router.navigate(['azdfz4896']);
  tick();
  expect(location.path()).toBe('/azdfz4896');
  expect(route.snapshot.component.name).toBe('AnyStringComponent');
}));

желаю что тебе поможет

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