如何测试角度材料对话框?

Fer*_*ndo 8 javascript typescript angular-material angular

我有一个自定义对话框组件类,我试图测试.特别是我的近距离功能就是这个

  close(): void {
    this.dialogRef.close();
  }
Run Code Online (Sandbox Code Playgroud)

dialogRef 注入该类构造函数,如下所示

 constructor(public dialogRef: MatDialogRef<CustomDialogComponent>,
              @Inject(MAT_DIALOG_DATA) public data: any) {
  }
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,我怎么能dialogRef在我的spec测试文件中模拟并测试其关闭函数?

我的项目是使用角度5和角度材料5.

Nit*_*hav 12

假设您要求测试使用对话框而不是对话框本身的组件,请在测试用例中添加

providers: [
     { provide: MAT_DIALOG_DATA, useValue: {} },
     { provide: MatDialogRef, useValue: {} }
 ]
Run Code Online (Sandbox Code Playgroud)

这应该提供必要的依赖.


Ale*_*net 1

您不需要测试它,因为您正在使用的库应该已经测试了它自己的组件(情况并非总是如此)。

但是,如果您需要使用关闭对话框参考的特定测试,请查看他们对此组件的测试,这应该有助于您编写自己的测试:

https://github.com/angular/components/blob/master/src/material/dialog/dialog.spec.ts#L186