[英]Unit testing Angular Jasmine Karma
我正在學習單元測試並且我已經
@Input() showSearchTab: Boolean = false;
@Input() currentTab: string = null;
ngOnInit(): void {
if (this.showSearchTab) {
this.currentTab = 'search';
}
}
這是單元測試:
describe('ngOnInit()', () => {
it('should set all the defaults', () => {
specManager.component.ngOnInit();
expect(specManager.component.currentTab).toBe('search');
});
});
我收到一個錯誤,預計 null 為“搜索”
根據您在ngOnInit
函數中的邏輯,如果showSearchTab
為true
則currentTab
將具有值search
。
因此,在您的測試用例中調用specManager.component.ngOnInit()
之前,設置specManager.component.currentTab = true;
在您的組件測試之后,在測試達到預期的那一刻,showSearchTab 設置為 false,因此它不會通過 if 條件。 要獲得經過全面測試的場景,您應該執行以下操作:
describe('ngOnInit()', () => {
describe('and showSearchTab is set to false', () => {
it('should set all the defaults', () => {
specManager.component.showSearchTab = false;
specManager.component.ngOnInit();
expect(specManager.component.currentTab).toBeNull();
});
});
describe('and showSearchTab is set to true', () => {
it('should set all the defaults', () => {
specManager.component.showSearchTab = true;
specManager.component.ngOnInit();
expect(specManager.component.currentTab).toEqual('search');
});
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.