Unit testing angular2测试,如何测试绑定到元素的事件
我正在为一个组件编写angular2单元测试。 完全使用JQuery可以找到绑定到元素的事件。然而在安圭拉2,我不确定这是否可能 例如,下面的代码有一个click事件,它是组件的公共函数Unit testing angular2测试,如何测试绑定到元素的事件,unit-testing,angular,components,Unit Testing,Angular,Components,我正在为一个组件编写angular2单元测试。 完全使用JQuery可以找到绑定到元素的事件。然而在安圭拉2,我不确定这是否可能 例如,下面的代码有一个click事件,它是组件的公共函数 <button (click)="doLogin()" [disabled]="myDisabled">Login</button> 我希望通过编写测试来确保将来不会有人删除此事件绑定 总之,我如何知道事件被正确地绑定到DOM元素 编辑: 有没有一种方法可以在不实际单击的情
<button (click)="doLogin()" [disabled]="myDisabled">Login</button>
我希望通过编写测试来确保将来不会有人删除此事件绑定
总之,我如何知道事件被正确地绑定到DOM元素
编辑:
有没有一种方法可以在不实际单击的情况下知道是否存在单击事件?您可以使用下面的方法(调用
单击:
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();
});
}));
有关更多详细信息,请参见此问题:
为什么不测试内部的函数是否被调用?如果没有,你可以假设有人删除了它。有没有一种方法可以在不单击的情况下知道是否存在单击事件?我可能会错误地询问这种方法,而不是触发单击事件。
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();
});
}));