Как проверить подписку роутера - PullRequest
0 голосов
/ 09 мая 2019

Я подписываюсь на маршрут на ngOnInit.

constructor(private route: ActivatedRoute)

ngOnInit() {
  this.route.queryParamMap.subscribe(params => {
     this.mode = 'test';
  })
}

Мне удалось протестировать все другие методы в моем компоненте, кроме маршрута, который я не знаю, как тестировать.Я также не вижу точного ответа на такой вопрос.

Может кто-нибудь, пожалуйста, помогите написать модульный тест для этой части.

Ответы [ 2 ]

0 голосов
/ 17 мая 2019

Вы должны ввести «Router» и «ActivatedRoute» в список поставщиков услуг Test Bed. Нечто вроде ниже.

class RouterStub {
  url = '...';
  navigate(urlName: string) {
    return urlName;
  }
}

class MockActivatedRoute {
  queryParams = Observable.from([{}]);
} 

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      providers: [...
        { provide: Router, useClass: RouterStub },
        { provide: ActivatedRoute, useClass: MockActivatedRoute } ..
      ]
    })
0 голосов
/ 09 мая 2019

Поскольку у меня недостаточно представителей, чтобы комментировать, я постараюсь помочь. ngOnInit() hook вызывается только один раз при загрузке компонента.

Что console.log(this.mode) возвращает?

...