Angular 如何在角度单元测试中选中复选框

Angular 如何在角度单元测试中选中复选框,angular,unit-testing,karma-jasmine,angular8,Angular,Unit Testing,Karma Jasmine,Angular8,嗨,我在这里使用了一个复选框,在CSS的帮助下假装成一个切换按钮。该功能很简单,如果复选框为true,则启用切换按钮,反之亦然。我想在单元测试中检查这一点。我知道我在下面的代码中遗漏了一些东西。任何帮助都将不胜感激 测试 it('should toggle switch to on if user response equals true', fakeAsync(() => { spectator.get(service).user.and.returnValue({});

嗨,我在这里使用了一个复选框,在CSS的帮助下假装成一个切换按钮。该功能很简单,如果复选框为true,则启用切换按钮,反之亦然。我想在单元测试中检查这一点。我知道我在下面的代码中遗漏了一些东西。任何帮助都将不胜感激

测试

it('should toggle switch to on if user response equals true', fakeAsync(() => {
    spectator.get(service).user.and.returnValue({});
    spyOn(spectator.get(serivce2), 'method').and.returnValue({Payload: {success: true}});
    tick();
    spectator.detectChanges();
    expect(spectator.query('.toggle-button').getAttribute('checked')).toBeTruthy();
}));
expect(spectator.query('.toggle-button').nativeElement.getAttribute('checked')).toBeTruthy();

假设
.toggle按钮
位于
上。您可以使用旁观者查询('.toggle button')。选中标准HTML DOM API的。

通过获取nativeElement来尝试此操作

it('should toggle switch to on if user response equals true', fakeAsync(() => {
    spectator.get(service).user.and.returnValue({});
    spyOn(spectator.get(serivce2), 'method').and.returnValue({Payload: {success: true}});
    tick();
    spectator.detectChanges();
    expect(spectator.query('.toggle-button').getAttribute('checked')).toBeTruthy();
}));
expect(spectator.query('.toggle-button').nativeElement.getAttribute('checked')).toBeTruthy();