Невозможно прочитать свойство 'navigate' из неопределенной ошибки при модульном тестировании в угловых

Почему я вижу эту ошибку при выполнении моего модульного теста для функции, которая должна быть вызвана: вот мой код, сначала код.spec.ts:

it(' doit appeller le serveur quand le boutton ok est cliqué, pour envoyer l option du choix du code', () => {
  let spy = spyOn(authService, 'choixReceptionCode').and.callFake(t => {
  // on est pas besoin de se qui retourner du serveur l essentiel la fonction a ete appelle 
  return Observable.empty();
});

component.choix('mail');
  // comme ça on a testé si la fonction 'connexion' a été appelle ou nn
  expect(spy).toHaveBeenCalled();
});

А вот функция в component.ts:

choix(choice:string)
{
  console.log("ggggggggg"+choice);
  this.router.navigate(['saisirCode']);
  this.choiceReceptionCode.choix=choice;
  this.choiceReceptionCode.user=this.serviceAuthentification.getUserId();
  this.serviceAuthentification.choixReceptionCode(this.choiceReceptionCode).subscribe(
  (data)=>{
      console.log("the response in choixReceptionCode");
      console.log(data);     


  },
  (error)=>{
      console.log("Error in choixReceptionCode ");
      console.log(error);
  });
}

при выполнении теста нг я обнаружил эту ошибку,
картинка, показывающая ошибку

Я знаю, что проблема в этой строке:

this.router.navigate(['saisirCode']);

в файле component.ts, потому что, когда я комментирую это, тестовый проход, так, как я могу решить это.

большое спасибо

1 ответ

Вы можете попытаться предоставить макет для маршрутизатора.

что-то вроде:

let router = jasmine.createSpyObj("Router", ["navigate"]);

а потом:

router.navigate.and.callFake(()=>Observable.of(your stubbed data to return here));

Затем создайте экземпляр вашего компонента, введя макет маршрутизатора

let component = new MyComponent(router);

На данный момент вы можете позвонить this.router.navigate когда внутри метода choix так как this.router будет ссылаться на введенную услугу, которую вы уже высмеяли и предоставили.

Другие вопросы по тегам