Typescript(Angular):单元测试订阅
发布时间:2020-12-17 18:03:06 所属栏目:安全 来源:网络整理
导读:我有一个简单的功能来做到这一点 ngOnInit() { if (this.session.getToken()) { this.isUserLogged = true; } this.loadingObserver = this.session.loadingObservable.subscribe(loading = this.isLoading = loading);} 我的测试如下 it('Testing ngOnInit(
我有一个简单的功能来做到这一点
ngOnInit() { if (this.session.getToken()) { this.isUserLogged = true; } this.loadingObserver = this.session.loadingObservable.subscribe(loading => this.isLoading = loading); } 我的测试如下 it('Testing ngOnInit() ...',async(() => { let spy = spyOn(services.session,'getToken').and.returnValue('token'); services.session.loadingObservable.subscribe(any => expect(component.isLoading).toEqual(false)); component.ngOnInit(); expect(component.isUserLogged).toEqual(true); expect(spy).toHaveBeenCalled(); })); 但在我的应用程序的代码覆盖范围内,订阅不包括在内.事实上,期待虚假也有效. 您对如何测试订阅有任何想法吗? 解决方法
是否在订阅时调用处理程序代码取决于您订阅的Observable的性质 – 特别是它的“hotness”或“coldness”.阅读这个出色的解释 –
https://blog.thoughtram.io/angular/2016/06/16/cold-vs-hot-observables.html – 并查看您的“loadingObservable”在分类中的位置.但我怀疑正如评论中所建议的那样,你需要强制它在你的单元测试中触发.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |