Angular material 未找到LoaderDialog的组件工厂
Angular material 未找到LoaderDialog的组件工厂,angular-material,angular-unit-test,Angular Material,Angular Unit Test,**testservice.ts** 从“/loader.component”导入{LoaderDialog}; 从“@angular/material/dialog”导入{MatDialog}; 导出类测试服务{ 构造函数(公共对话框:MatDialog){} dialogRef:任何; show(){ this.dialogRef=this.dialog.open(LoaderDialog{ disableClose:对, panelClass:“透明背景” }); } **testcom
**testservice.ts**
从“/loader.component”导入{LoaderDialog};
从“@angular/material/dialog”导入{MatDialog};
导出类测试服务{
构造函数(公共对话框:MatDialog){}
dialogRef:任何;
show(){
this.dialogRef=this.dialog.open(LoaderDialog{
disableClose:对,
panelClass:“透明背景”
});
}
**testcomponent.ts**
构造函数(私有apiServ:apiservice,私有对话框:MatDialog,私有加载程序:TestService){
this.loader.show();
}
当我为testcomponent
运行测试用例时,我得到了以下信息
错误:“未找到LoaderDialog的组件工厂”
我已经找到了这个问题的解决方案。我们需要在测试规范文件的每个函数之前添加'overrideModule'和2个参数,并将组件添加到声明部分
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ DataCenterComponent, **LoaderDialog**]
})
**.overrideModule(BrowserDynamicTestingModule, { set: { entryComponents: [LoaderDialog] } })**
}));