[英]Angular Unit Testing for ngOnDestroy
我正在使用Jasmine Karma对角组件进行单元测试,并且遇到以下错误
TypeError: this.subscription.unsubscribe is not a function at ScheduledNewContributionsViewComponent.ngOnDestroy (webpack:///./src/app/contributions/scheduled-new-contributions-view/scheduled-new-contributions-view.component.ts?:154:31) at callProviderLifecycles
当我为ScheduledNewContributionsViewComponent运行单元测试时,此错误在控制台中显示。 虽然我的测试通过了,但是控制台窗口充满了这个错误,每次测试都会继续出现。
下面是我的ts文件
ngOnInit(): void {
this.subscription = this.contributionService.editContribution$.subscribe(
data => {
this.scheduledContributionData = data;
this.headerTitle = this.contributionService.getLabel('ACCTTAB.COMMONREQUESTS.MANAGECONTRIBUTIONS.EDIT');
}
this.loadEditScheduledContributionData(this.scheduledContributionData);
});
ngOnDestroy() {
// prevent memory leak when component destroyed
if (this.subscription)
this.subscription.unsubscribe();
// if(this.deleteSubscription)
// this.deleteSubscription.unsubscribe();
}
对于contributionService,我创建了存根并模拟了editContribution $
class ContributionServiceStub {
editContribution$ = {
subscribe: function(data) {
return Observable.of(data);
}
}
您的存根函数不正确。 调用subscribe
时,它返回的是一个可观察的对象,但它应该返回一个订阅。
class ContributionServiceStub {
editContribution$ = Observable.of(data);
}
我只是将可观察对象分配给editContribution$
属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.