Как можно смоделировать данные для this.getResults $ .subscribe в angular для случаев модульного тестирования? - PullRequest
0 голосов
/ 03 апреля 2020
displayMesssage(){
this.getResults$.subscribe(data =>{
if(data !== undefined && data !== null){
 this.message = data.message;
}else{
 this.message="Empty";
});
}

Как можно смоделировать данные для вышеприведенного варианта использования в жасмине?

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Как то так, может работать. Если это не сработает, мне нужно увидеть полное описание c и полный компонент.

import { of } from 'rxjs';
....
it('should set message to data.message when not null or undefined', () => {
  component.getResults$ = of({ message: 'hello world' });
  component.displayMessage();
  expect(component.message).toBe('hello world');
});

it('should set message to "Empty" if getResults$ is falsy', () => {
  component.getResults$ = of(null);
  component.displayMessage();
  expect(component.message).toBe('Empty');
});
0 голосов
/ 03 апреля 2020

Попробуйте следующим образом

return new Promise((resolve, reject) => {
  setTimeout(() => {
    const data = { res: "put your data here" };
    resolve(data);
  }, 2000);
});

Пример Stackblitz с фиктивными услугами

...