我正在为组件编写angular2单元测试。 通过完全使用JQuery,可以找到绑定到元素的事件。但是在Angular2中,我不确定它是否可能
例如,以下代码具有click事件,该事件是组件的公共函数
<button (click)="doLogin()" [disabled]="myDisabled">Login</button>
通过读取DOM元素,我可以通过运行测试来确保所有属性和数据绑定都是正确的。只有我不知道的是,“event
绑定是否正确”,因为生成的html如下所示
<button>Login</button>
我想通过为它编写测试来确保将来不会删除此事件绑定。
总之,我如何知道事件是否正确绑定到DOM元素?
编辑: 有没有办法知道有点击事件而没有实际点击它?
答案 0 :(得分:2)
您可以使用以下方法(调用click
:
it('should render list', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb.createAsync(MyList).then((componentFixture: ComponentFixture) => {
const element = componentFixture.nativeElement;
componentFixture.detectChanges();
expect(element.querySelectorAll('li').length).toBe(5);
document.getElementById('test').click();
});
}));
有关详细信息,请参阅此问题: