Angular 角度4:如何在<;中选择选项;mat select>;在组件单元测试中?

Angular 角度4:如何在<;中选择选项;mat select>;在组件单元测试中?,angular,angular-material,Angular,Angular Material,我正在测试一个组件,该组件包含一个来自角度材料的 我想在测试期间更改所选的值,然后断言表中的数据已重新加载 这是我一直在尝试的,但它似乎没有产生一个适当的变化事件: const selectSubregions = fixture.debugElement.query(By.css('#subregionSelect')); const selectComponent: MatSelect = selectSubregions.componentInstance; selectComponent

我正在测试一个组件,该组件包含一个来自角度材料的

我想在测试期间更改所选的值,然后断言表中的数据已重新加载

这是我一直在尝试的,但它似乎没有产生一个适当的变化事件:

const selectSubregions = fixture.debugElement.query(By.css('#subregionSelect'));
const selectComponent: MatSelect = selectSubregions.componentInstance;
selectComponent.writeValue(2);
selectSubregions.nativeElement.dispatchEvent(new Event("change"));
fixture.detectChanges();
selectSubregions.query(By.css('.mat-select-trigger')).nativeElement.click();
更新: 我试图触发更改事件的另一个变体:

const selectSubregions = fixture.debugElement.query(By.css('#subregionSelect'));
const selectComponent: MatSelect = selectSubregions.componentInstance;
selectComponent.writeValue(2);
selectSubregions.nativeElement.dispatchEvent(new Event("change"));
fixture.detectChanges();
selectSubregions.query(By.css('.mat-select-trigger')).nativeElement.click();

这是影响多个单元(包括第三方单元)的功能/集成测试。通常在单元测试中不应该这样做。我建议对mat select选择器使用虚拟组件。测试它的方式取决于此表单的工作方式。