假設(shè)我有一個(gè)在單擊時(shí)發(fā)出事件的組件,即 @Component({ selector: 'component-checkout-payment', template: `<button (click)="click()>Click me</button>` }) export class TestComponent{ @Output() clicked = new EventEmitter<boolean>(); click() { this.clicked.emit(true); } }然后我會(huì)像下面那樣分別測(cè)試事件和組件方法嗎?it('should emit an event when `click` is called`, () => { jest.spyOn(component.clicked, 'emit'); component.click(); expect(component.clicked.emit).toHaveBeenCalledWith(true);});it('should call `click` when button has been clicked`, () => { jest.spyOn(component, 'click'); let button = fixture.debugElement.nativeElement.querySelector('button'); button.click(); expect(component.click).toHaveBeenCalled();})或者我會(huì)測(cè)試當(dāng)按鈕被點(diǎn)擊時(shí),它又會(huì)發(fā)出一個(gè)事件嗎?it('should emit event when button has been clicked`, () => { jest.spyOn(component.clicked, 'emit'); let button = fixture.debugElement.nativeElement.querySelector('button'); button.click(); expect(component.clicked.emit).toHaveBeenCalledWith(true)})我假設(shè)是后者,因?yàn)樗鼘⑶皟蓚€(gè)測(cè)試合二為一。不過(guò)我想澄清一下。我還想知道這些類(lèi)型的測(cè)試是單元測(cè)試、集成測(cè)試還是 e2e 測(cè)試。
我應(yīng)該如何測(cè)試這個(gè)角度組件?
慕容3067478
2021-06-01 12:58:27