我已尝试以下操作来尝试单击选择下拉列表中的选项,但没有任何效果。
selectEl = fixture.debugElement.query(By.css('#dropdown'));
selectEl.nativeElement.options[3].nativeElement.dispatchEvent(new Event('click'));
selectEl.queryAll(By.css('option'))[3].nativeElement.click();
selectEl.nativeElement.options[3].nativeElement.click();
每次我跑步后fixture.detectChanges();
运行更改检测,但是当我去检查元素值时它没有更改。expect(selectEl.nativeElement.options[selectEl.nativeElement.selectedIndex].textContent).toBe('name2');
我是否缺少一些简单的东西来让它发挥作用?
更改下拉列表中选定选项的方法是设置下拉列表值,然后调度一个change
event.
您可以使用这个答案作为参考:角度单元测试选择 onChange 监视空值 https://stackoverflow.com/questions/48241756/angular-unit-test-select-onchange-spy-on-empty-value/48243182#48243182
对于你的情况,你应该这样做:
const select: HTMLSelectElement = fixture.debugElement.query(By.css('#dropdown')).nativeElement;
select.value = select.options[3].value; // <-- select a new value
select.dispatchEvent(new Event('change'));
fixture.detectChanges();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)