[英]How to cover IF/ELSE condition with Angular 4 Jasmine unit test case
[英]How to cover unit test case for addEventListener in Angular 9
如何覆蓋addEventListener內部代碼。
任何角度的組件.ts
openModalWithKeypress() {
const div = this.elm.nativeElement.querySelector('div');
div.addEventListener('keydown', e => {
this.openModal(e);
});
}
您可以在fakeAsync
區域中執行單元測試。 然后,您需要在調度 keydown event
之后調用tick()
。 這可能如下所示:
it('#keydown should open modal', fakeAsync(() => {
// given
spyOn(anyComponent, 'openModal')
const divElement = <HTMLDivElement> fixture.debugElement.nativeElement.querySelector('div');
const event = new KeyboardEvent('keydown', { key: 'x' });
// when
divElement.dispatchEvent(event);
tick();
// then
expect(anyComponent.openModal).toHaveBeenCalledWith(event);
}));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.