Угловое [карма] асинхронное тестирование в Observable - PullRequest
2 голосов
/ 18 марта 2019

Я пытаюсь проверить асинхронный случай. Мой компонент:

  ngOnInit(private service: MyService) {
    this.isLoading = true;
    this.service.getData().subscribe((data) => {
      this.data = data;
      this.isLoading = false;
    });
  }

Как вы можете видеть, я установил загрузку в true, и когда данные были проверены, isLoading становится false. Это то, что я хочу проверить. Я пробовал с тик (), когда стабильный ... Я шпионю за MyService, чтобы вернуть Observable с mockData, но я не могу поймать isLoading на true.

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 18 марта 2019
it('should ...', done => {
  const dataMock = {};
  spyOn(component['service'], 'getData').and.returnValue(of(dataMock);
  component['service'].getData().pipe(delay(500)).subscribe(data => {
    expect(component.data).toBe(dataMock));
    expect(component.isLoading).toBeFalsy();
    done();
  });

  expect(component.isLoading).toBeTruthy();
});
...