Saltar al contenido

Angular: cómo burlarse de MatDialogRef durante la prueba

Queremos brindarte la mejor respuesta que descubrimos en todo internet. Queremos que te sea de mucha ayuda y si deseas comentarnos alguna mejora siente la libertad de hacerlo..

Solución:

Lo resolví cambiando el constructor del componente a:

constructor(
  public dialogRef: MatDialogRef,
  @Inject(MAT_DIALOG_DATA) public data: Dialog | any
)

Los proveedores en TestBed fueron:

providers: [ provide: MatDialogRef, useValue:  ,  provide: MAT_DIALOG_DATA, useValue: data ]

Si usa al menos uno MatDialogRef método, debe crear un simulacro. Por ejemplo yo uso el close() método. Sin él, se generarían errores, así que hice la siguiente clase con un método vacío.

export class MatDialogRefMock 
    close(value = '') 

    

y use eso en lugar de un valor vacío, con useClass

 provide: MatDialogRef, useClass: MatDialogRefMock ,

Importe MatDialogModule y MatDialogRef desde angular/material/dialog en lugar de angular/material. Importe ModalDialogModule y proporcione proveedores para MatDialogRef en su TestBed.

Import MatdialogModule,MatDialogRef from '@angular/material/dialog';

TestBed.configureTestingModule(
declarations: [componentName],
imports: [MatdialogModule],
providers: [provide : MatDialogRef, useValue : ]
);

Comentarios y valoraciones

Si posees algún reparo o disposición de beneficiar nuestro tutorial te recordamos ejecutar una interpretación y con placer lo ojearemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *