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] } })**
  }));