Сбой модульного теста в диалоговом окне Угловой с матем

#angular #angular-material #karma-jasmine #angular-ui #angular-unit-test

Вопрос:

У нас есть кнопка в пользовательском интерфейсе, при нажатии на которую он внутренне вызывает метод, который вызывает службу для выполнения какой-либо операции, а затем отображает сообщение о возврате с помощью диалогового окна mat. Модульный тест завершается неудачно, говорится, что «метод open() не существует». ошибка возникает в строке кода spyOn(component.dialog, 'open').and.callThrough();

после нажатия кнопки «Вызов» нажмите:

 public dosomething(){  this.service  .dosomething()  .subscribe((result) =gt; {  this.showConfirmDialog(result);  this.isDisabled = true;  },  error =gt; {  this.showErrorDialog();  });  }  

ниже приведен код showConfirmDialog()

 private showConfirmDialog(result){ const dialogConfig = new MatDialogConfig();  dialogConfig.disableClose = true;  dialogConfig.autoFocus = true;  dialogConfig.data = {  messageHeader: heading,  answerDescription: result,  isShownAnswerDescription: true,  isHidden: true,  } as MessageData;   const dialogRef = this.dialog.open(MessageDialogComponent, dialogConfig); }  

ниже приведен модульный тест:

 it('should do something on click of button button', () =gt; {  spyOn(TestBed.inject(ConfigurationManagementService), 'dosomething')  .and.returnValue(of('message'));  spyOn(component.dialog, 'open').and.callThrough();   component.isDisabled = false;  component.dosomething();  expect(component.dialog.open).toHaveBeenCalledWith(MessageDialogComponent);  });  

Пожалуйста, дайте мне знать, если я что-то упущу…

Заранее спасибо!!!