我如何模拟 this.getResults$.subscribe in angular 的单元测试用例数据?

How can I mock data for this.getResults$.subscribe in angular for unit test cases?

displayMesssage(){
this.getResults$.subscribe(data =>{
if(data !== undefined && data !== null){
 this.message = data.message;
}else{
 this.message="Empty";
});
}

如何在 jasmine 中模拟上述用例的数据?

像这样的东西,它可能会起作用。如果这不起作用,我需要查看完整的规范和完整的组件。

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');
});

试试这个方法

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

Stackblitz example 有模拟服务