Модульное тестирование подписки в ngOnInit не работает - PullRequest
0 голосов
/ 07 марта 2019

У меня есть подписчик на наблюдаемое в ngOnInit, и сейчас я пытаюсь написать тест для этого, который, кажется, не работает.

Вот мой класс, который я пытаюсь проверить

ngOnInit() {
  this.myService.updates$.pipe(takeUntil(unsusbribe$))
   .subscribe(update => {
     this.feeds = update;
  })
}

Вот мой модульный тест для этого

it('should set feeds when an update is sent', fakeAsync(() => {
const update = 'fakeUpdate';
component.ngOnInit();
  const serviceSpy = spyOn(myService, 'updates$').and.returnValue(timer(500).pipe(mapTo(update)))
tick(500);
expect(serviceSpy).toHaveBeenCalled(); 
}))

Этот тест не пройден с ошибкой Expected spy updates$ to have been called.

Может кто-нибудь, пожалуйста, помогите мне разобраться в проблеме здесь.

1 Ответ

0 голосов
/ 07 марта 2019

Правильный способ использования шпионского сервиса.Пожалуйста, попробуйте это.

  it('should set feeds when an update is sent', fakeAsync(() => {
    const update = 'fakeUpdate';
    const serviceSpy = spyOn(myService, 'updates$');
    serviceSpy.and.returnValue(timer(500).pipe(mapTo(update)))
    tick(500);
    expect(serviceSpy).toHaveBeenCalled(); 
  }))
...