Жасмин Ожидаемая ошибка jasmine.createSpyObj - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь смоделировать и выполнить другое условие для метода ниже, но я получаю ошибку как Ожидается, что spy modalService.open не будет вызван

Вот код компонента

После обновления строки ниже component.isError = true;

Подсветка блока If не пришла, но ошибка все еще доступна

public importDeals(upload, list) {
  this.fileName = '';
   let ngbModalOptions: NgbModalOptions = {
    backdrop : 'static',
    keyboard : false,
    windowClass: 'custom-class'
};   
if (!this.isError) {
  this.uploadModalRef = this.modalService.open(upload, ngbModalOptions);
}
this.tempContingency = list;
}

Ниже приведен текущий пример модульного теста (Жасмин)

it('should import deals', () => {
  // component.importDeals;
  // expect(component.importDeals('upload','list')).toBeUndefined();
  component.importDeals;
  component.uploadModalRef = jasmine.createSpyObj('uploadModalRef', ['close']);
  let mockOptions: NgbModalOptions = {
    backdrop : 'static',
    keyboard : false,
    windowClass: 'custom-class'
  };
  const mockConfirm = 'confirm-template';
  component.importDeals(mockConfirm,'');
  expect(modalService.open).toHaveBeenCalledWith(mockConfirm, mockOptions);
});
it('should not import deals', () => { 
  component.importDeals; 
  component.modalService = jasmine.createSpyObj('modalService',['open'])
  const mockConfirm = 'confirm-template'; 

  component.importDeals(mockConfirm,''); 
  expect(modalService.open).not.toHaveBeenCalled(); 
  });

Пожалуйста, дайте мне знать, что я здесь делаю не так

1 Ответ

0 голосов
/ 02 сентября 2018

Установите значение isError равным true, в противном случае блок if будет выполняться всегда.

it('should not import deals', () => { 
  component.importDeals; 
  component.modalService = jasmine.createSpyObj('modalService',['open']);
  component.isError = true; // <- this line
  const mockConfirm = 'confirm-template'; 

  component.importDeals(mockConfirm,''); 
  expect(modalService.open).not.toHaveBeenCalled(); 
});
...