我正在尝试使用复选框来测试组件,但是找不到用于测试复选框更改事件的解决方案。
这是我要测试的组件:
ng build --prod
这是测试代码:
ng new App1
我有这个错误:“无法读取属性'选中'为null”。 看来问题出在“ $ event.currentTarget.checked”中:我的新Event('change')没有目标值或currentTarget值。
如果我将事件更改为单击,则会遇到相同的问题。 我可以更改组件代码以从事件中获取复选框值,而不是使用viewChild或类似的东西,但我认为当前代码更好。
有人可以解决吗? 谢谢!
答案 0 :(得分:1)
检查下面的代码会有所帮助。
it ('should send true when selected', fakeAsync(() => {
const compiled = fixture.debugElement.nativeElement;
const elem = compiled.querySelector('#revert-project');
expect(elem.checked).toBeFalsy();
elem.change(); //or you can use click();
expect(elem.checked).toBe(true);
}));