我如何模拟 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 有模拟服务
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 有模拟服务