[英]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.