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

时间:2018-01-08 18:45:20

标签: javascript angular typescript angular-material

我有一个自定义对话框组件类,我正在尝试测试。特别是我的关闭功能就是这个

  close(): void {
    this.dialogRef.close();
  }

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

 constructor(public dialogRef: MatDialogRef<CustomDialogComponent>,
              @Inject(MAT_DIALOG_DATA) public data: any) {
  }

所以我的问题是,如何在我的规范测试文件中模拟dialogRef并测试其关闭函数?

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

2 个答案:

答案 0 :(得分:6)

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

providers: [
     { provide: MAT_DIALOG_DATA, useValue: {} },
     { provide: MatDialogRef, useValue: {} }
 ]

这应该提供必要的依赖。

答案 1 :(得分:0)

您不应该对此进行测试,因为您使用的库应该已经测试了自己的组件(情况并非总是这样)。

但是如果你需要一个使用close对话框参考的特定测试,看看他们对这个组件的测试应该可以帮助你编写你的测试:

keyword arguments