单元测试 Angular Jasmine Karma
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 为 'search'
根据您在 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');
});
});
});
我正在学习单元测试并且我已经
@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 为 'search'
根据您在 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');
});
});
});