Angular 8 - 如何模拟从服务返回的主题
2020-03-13
368
这是服务部分:
@Injectable()
export class PinnedTileStateService {
private pinnedTileStateSubject: Subject<number> = new Subject();
public getPinnedTileState(): Subject<number> {
if (this.pinnedTileStateSubject) {
return this.pinnedTileStateSubject;
}
}
}
这是组件部分:
ngOnInit(): void {
this.pinnedTileStateService.getPinnedTileState().subscribe((pinnedTileId) => {
//anything
});
}
我想测试 .spec.ts 文件中的 ngOnInit() 方法。我尝试了几种方法,例如模拟主题,但没有成功。
可以帮我吗,如何测试返回主题的 ngOnInit getPinnedTileState 方法?
非常感谢 /S
1个回答
尝试以下操作:
spyOn(pinnedTileStateService,'getPinnedTileState').and.returnValue(Observable.of(// whatever shall be emited));
如果您想测试 onInit 行为,您必须在 beforeEach 块中设置间谍,因为您想在组件初始化期间设置它。
mamichels
2020-03-13