web-dev-qa-db-ja.com

テスト方法angular材料ダイアログ?

テストしようとしているカスタムダイアログコンポーネントクラスがあります。具体的にはこれが私のクローズ機能

  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.を使用しています。

11
Fernando

Dialog自体ではなく、dialogを使用するコンポーネントのテストについて質問していると仮定すると、テストケースで、

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

これにより、必要な依存関係が提供されます。

12
Nitin Jadhav

使用しているライブラリはすでに独自のコンポーネントをテストしているはずなので、これをテストする必要はありません(常にそうであるとは限りません)。

しかし、ダイアログを閉じる参照を使用する特定のテストが必要な場合は、このコンポーネントのテストを確認してください。

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

0
Alex Beugnet