我将matSlideToggle绑定到formControl值。我想创建一个单元测试,以测试何时更改了幻灯片切换值,然后相应地更改了表单中的状态值。
<form [formGroup]="form">
...
<mat-slide-toggle
formControlName="status"
(change)="changed($event)"
>
Status
</mat-slide-toggle>
...
</form>
表单初始化为
this.form = new FormGroup({
...
status: new FormControl(false),
...
});
}
更改的方法:
changed(status) {
console.log(
'status',
status,
this.form.get('status').value
);
}
在测试中,我执行以下操作:
const statusToggleEl = fixture.debugElement.query(By.directive(MatSlideToggle));
statusToggleEl.triggerEventHandler('change', { checked: true });
fixture.detectChanges();
此代码触发更改的方法,在控制台中,我可以看到“状态{checked:true} false”,这不应该被视为行为。