【发布时间】:2020-11-03 11:00:12
【问题描述】:
我正在为 click 事件编写 karma/jasmine 测试用例,但我的按钮为空。请给我建议。提前致谢。
it('should', async(() => {
spyOn(component, 'clickMethod');
let button = fixture.debugElement.nativeElement.querySelector('#view-rec');
console.log(button); --> button is null I am getting
button.click();
fixture.whenStable().then(() => {
expect(component.clickMethod).toHaveBeenCalled();
})
组件::
clickMethod() {
this.msg.node.setVal(false);
this.myBtn = "Hello";
}
HTML::
<mat-menu #menu="matMenu" class="dropdown">
<button mat-menu-item>
</button>
<button mat-menu-item id="view-rec"(click)='clickMethod()'>
</button>
</mat-menu>
【问题讨论】:
-
没有条件渲染,在 mat-menu 下拉菜单里面
-
你可以试试这个:let button = fixture.debugElement.query(By.css('#view-rec'));
-
你在访问 DOM 之前调用了 detectChanges 吗?
标签: javascript html angular typescript karma-jasmine