Как мне написать тестовый блок для подписки внутри ngOnInit? - PullRequest
0 голосов
/ 19 марта 2019

Здесь я подписываюсь на данные в отдельном файле (сервисе)

ngOnInit() {
    this.service.getSelectedEvent.subscribe(
        trendsPageEventListener => {
            this.zone.run(()=>{
                this.trendsPageEventListener = trendsPageEventListener; 
               });
        });       
  }

1 Ответ

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

Это для фреймворка JASMINE. Точно так же можно использовать и для Jest.

Контекст: создайте заглушку для метода в службе и верните значение заглушки. Когда вы запустите ngOnInit, наблюдаемое будет заменено значением заглушки и подписано вашим компонентом.

В вашем фиктивном сервисе (лучше использовать фиктивные сервисы вместо реальных сервисов в тестовой конфигурации), getSelectedEvent = jasmine.createSpy('getSelectedEvent');

В вашем модульном тесте ... mockService.getSelectedEvent.and.returnValue(of("any value"))... затем запустите fixture.detectChanges (), он автоматически вызовет ваши функции внутри ngOnInit.

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