我有一个打算在Angular Material MdDialog中使用的组件:

@Component({
  ...
})
export class MyComponent {

  constructor(@Inject(MD_DIALOG_DATA) public data: any, public dialogRef:
MdDialogRef<MyComponent>) {
...
  }


}

我正在尝试使用Jasmine进行单元测试:
describe('MyComponent', () => {
  let component: MyComponent;
  let fixture: ComponentFixture<MyComponent>;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      imports: [
        SharedTestingModule,
      ],
      declarations: [
        MyComponent,
      ],
    })
    .compileComponents();
  }));

  ...

});

不幸的是,我收到以下错误:



SharedTestingModule导入和导出我的自定义Angular Material模块,该模块本身导入和导出MdDialogModule。

如何摆脱这个错误?

非常感谢你!
Angular 4.2.4
Angular Material 2.0.0-beta.7
Jasmine 2.5.3

最佳答案

我添加了这个:

providers: [
    { provide: MD_DIALOG_DATA, useValue: {} },
    { provide: MdDialogRef, useValue: {} }
]

它有效:)

感谢您的帮助@methgaard!

10-08 16:42