我正在撰寫單元測驗,我有這個簡單的方法,它根據 matSelectChange 的值做一些事情。我怎樣才能測驗這個,所以代碼覆寫率是 100%?
selectionChanged(matSelectChange: MatSelectChange): void {
if (matSelectChange.value === '1') {
this.service.doSomething();
} else if (matSelectChange.value === '2') {
this.service.doSomethingElse();
}
}
uj5u.com熱心網友回復:
我會像這樣寫測驗
describe('mat-select behaviour', () => {
it('sould call doSomething if value is "1"', () => {
const service = TestBed.inject(ServiceClass)
spyOn(service, 'doSomething')
const matSelect = fixture.debugElement.query(By.css('mat-select'))
matSelect.triggerEventHandler('selectionChange', {value: '1'});
fixture.detectChanges()
expect(service.doSomething).toHaveBeenCalledWith('1');
});
it('sould call doSomething if value is "2"', () => {
const service = TestBed.inject(ServiceClass)
spyOn(service, 'doSomethingElse')
const matSelect = fixture.debugElement.query(By.css('mat-select'))
matSelect.triggerEventHandler('selectionChange', {value: '2'});
fixture.detectChanges()
expect(service.doSomethingElse).toHaveBeenCalledWith('2');
});
})
在您可以使用服務類之前,您必須在測驗設定中提供它
providers: [
ServiceClass
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/421468.html
標籤:
