Угловая - Карма юнит тест не работает, почему? - PullRequest
0 голосов
/ 18 декабря 2018

Как следует из названия, я хотел бы спросить, знает ли кто-нибудь решение о том, как пройти этот модульный тест, после добавления службы поддержки к компоненту test123 он больше не будет отображаться как истинный, независимо от того, что яделать. Образец кода и сообщения об ошибках

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

В будущем, пожалуйста, отправляйте код как код, а не как изображение.

Существует ряд проблем с кодом, как вы обрисовали.Вот некоторые из них:

  • Вы показали нам сервисную функцию secondsToTimeFormat(), но в компоненте, который вы вызываете this.supportService.secondsToTime().
  • , в компоненте, который вы вызываете той же функцией, с чемкажется объектом без фигурных скобок.
  • вы не предоставляете SupportService в массиве провайдеров TestBed в вашем файле .spec.
  • Поскольку SupportService не является поддельным, он пытаетсявызвать реальную службу, в результате которой вы увидели ошибку no provider for Router!.Чтобы изолировать этот компонент, вы должны смоделировать вызов службы шпионом.

Чтобы показать вам, как все это работает на самом деле, я собрал этот Stackblitz .

См. документы для получения подробной информации о том, как все это сделать.

0 голосов
/ 18 декабря 2018

Вам необходимо указать заглушку службы, которую вы вводите компоненту.

 providers: [ 
     { 
         provide: SupportService,
         useValue: supportServiceStub 
     }
 ]

, где вы определяете функции поддержки supportServiceStub в службе, подробнее здесь https://angular.io/guide/testing#component-class-testing

...