如何测试角度材料对话框?
Posted
技术标签:
【中文标题】如何测试角度材料对话框?【英文标题】:How to test angular material dialog? 【发布时间】:2018-06-17 18:53:39 【问题描述】:我有一个正在尝试测试的自定义对话框组件类。特别是我的关闭功能,这是
close(): void
this.dialogRef.close();
dialogRef
被注入到该类的构造函数中,如下所示
constructor(public dialogRef: MatDialogRef<CustomDialogComponent>,
@Inject(MAT_DIALOG_DATA) public data: any)
所以我的问题是,如何在我的规范测试文件中模拟 dialogRef
并测试其关闭功能?
我的项目使用 angular 5,angular material 5。
【问题讨论】:
【参考方案1】:您不需要对此进行测试,因为您使用的库应该已经测试了它自己的组件(并非总是如此)。
但是,如果您需要使用关闭对话框引用的特定测试,请查看他们对此组件的测试,这应该可以帮助您编写自己的测试:
https://github.com/angular/components/blob/master/src/material/dialog/dialog.spec.ts#L186
【讨论】:
flush 是所有 observables 的答案,谢谢!【参考方案2】:假设您询问的是使用对话框而不是对话框本身的测试组件,在您的测试用例中,添加
providers: [
provide: MAT_DIALOG_DATA, useValue: ,
provide: MatDialogRef, useValue:
]
这应该提供必要的依赖关系。
【讨论】:
不需要mock这些provider,正确的方式如上角源码所示以上是关于如何测试角度材料对话框?的主要内容,如果未能解决你的问题,请参考以下文章