【发布时间】:2021-11-27 15:25:49
【问题描述】:
我想为 mat slide toggle 编写测试用例。
Test case
it('should call change method on slide change', async () => {
const nativeElement = fixture.nativeElement;
const slider = nativeElement.querySelector('.slider');
slider.dispatchEvent(new Event('change'));
expect(component.toggleStatus).toHaveBeenCalled();
});
我的组件.html
<ng-container matColumnDef="active">
<th mat-header-cell *matHeaderCellDef>Status</th>
<td mat-cell *matCellDef="let row" (click)="isAction=true">
<mat-slide-toggle class="slider" color="primary" [checked]="row.status" #toggle
(change)="toggleStatus($event,row,toggle)">
</mat-slide-toggle>
</td>
</ng-container>
Component.ts
public toggleStatus(event: MatSlideToggleChange, service: ServiceModel, toggle: MatSlideToggle) {
if (event.checked) {
this.actionActivate(service, toggle);
} else {
this.actionDeactivate(service, toggle);
}
}
执行此测试用例时的错误是 enter image description here
谁能帮我纠正这个测试用例
【问题讨论】:
标签: angular typescript karma-jasmine angular-test angular-unit-test