テストしようとしているカスタムダイアログコンポーネントクラスがあります。具体的にはこれが私のクローズ機能
close(): void {
this.dialogRef.close();
}
dialogRef
は、以下に示すように、そのクラスコンストラクターに注入されます
constructor(public dialogRef: MatDialogRef<CustomDialogComponent>,
@Inject(MAT_DIALOG_DATA) public data: any) {
}
したがって、私の質問は、スペックテストファイルでdialogRef
をモックして、そのclose関数をテストするにはどうすればよいでしょうか。
私のプロジェクトはangular 5、およびangular material 5.を使用しています。
Dialog自体ではなく、dialogを使用するコンポーネントのテストについて質問していると仮定すると、テストケースで、
providers: [
{ provide: MAT_DIALOG_DATA, useValue: {} },
{ provide: MatDialogRef, useValue: {} }
]
これにより、必要な依存関係が提供されます。
使用しているライブラリはすでに独自のコンポーネントをテストしているはずなので、これをテストする必要はありません(常にそうであるとは限りません)。
しかし、ダイアログを閉じる参照を使用する特定のテストが必要な場合は、このコンポーネントのテストを確認してください。
https://github.com/angular/components/blob/master/src/material/dialog/dialog.spec.ts#L186