0

**testservice.ts**

    import { LoaderDialog } from './loader.component';
    import { MatDialog } from '@angular/material/dialog';

    export class TestService {

    constructor(public dialog: MatDialog) {}
    dialogRef:any;

    show() {
      this.dialogRef = this.dialog.open(LoaderDialog, {
          disableClose: true,
          panelClass: 'transparent-background'
      });
    }

**testcomponent.ts**

    constructor(private apiServ:ApiServeService, private dialog: MatDialog, private loader: TestService) {
    this.loader.show();
}

当我运行测试用例时,testcomponent我得到以下信息

错误:“未找到 LoaderDialog 的组件工厂”。

4

1 回答 1

0

我已经找到了这个问题的解决方案。我们需要将“overrideModule”添加到我们的测试规范文件的 beforeEach 函数中,其中包含 2 个参数,并将组件也添加到声明部分中。

beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [ DataCenterComponent, **LoaderDialog**]
    })
    **.overrideModule(BrowserDynamicTestingModule, { set: { entryComponents: [LoaderDialog] } })**
  }));
于 2019-11-21T07:46:05.513 回答