【发布时间】:2018-03-24 14:06:01
【问题描述】:
我正在尝试测试下拉切换功能。但我无法让它发挥作用。我还将BsDropdownModule 导入到规范文件中。
注意:我使用的是 ngx-bootstrap。
这是我尝试过的:
HTML:
<div class="btnBox" dropdown placement="bottom right">
<button class="btnIcon dropdown-toggle" dropdownToggle>
</button>
<ul class="btnOptionBox dropdown-menu dropdown-menu-right" *dropdownMenu>
<li class="iconBtn" (click)="someFun()" type="button"><span>Edit</span></li>
<li class="iconBtn" (click)="someFun1()" type="button"><span>Delete</span></li>
</ul>
</div>
测试规范:
it("Should show options when toggle option is clicked",() => {
fixture.detectChanges();
let toggleButton = fixture.debugElement.queryAll(By.css('[dropdownToggle]'));
toggleButton[0].nativeElement.click();
fixture.detectChanges();
/*Unable to access li tag directly. That's why I have used it's parent*/
let list = fixture.debugElement.queryAll(By.css('div.ellipsisBox'));
console.log(list[0]); /*Shows the list in the children array*/
console.log(list[0].children); /*Doesn't show the list*/
});
任何人都可以提出正确的方法吗?
【问题讨论】:
-
嗨,你能告诉我你是如何在你的规范中导入 BsDropdownModule 的吗?当我这样做时,它给了我一堆静态注入器错误。我尝试了您的解决方案,但我遇到了同样的问题,即使单击按钮后,dom 中也不存在 ul。
-
您是否尝试过添加 FormsModule?您是否收到 BsDropdownModule 的注入器错误?
标签: angular unit-testing typescript karma-jasmine ngx-bootstrap