Функция для тестирования

changeIva(idTax: number, index: number): void {
    this.documentService.getTaxById(idTax).subscribe(tax => {
      if (tax.codigo === 'ISE') this.openModal(index);
    });
  }

покрытие

Как далеко я зашел

it('should test whether the tax is exempt or not', () => {
    const taxMockSuccess = taxMock[0];
    const idTax = 106;
    const index = 1;
    const modalOpenSpy = spyOn(component['modal'], 'open');
    const documentServiceSpy = spyOn(documentService, 'getTaxById').and.returnValue(
      of({ taxMockSuccess })
    );

    component.changeIva(idTax, index);

    expect(documentServiceSpy).toBeCalledWith(idTax);
    expect(modalOpenSpy).toBeCalled();
  });

Мне нужна помощь, я не знаю, как проверить эту IF в подписке

0
Nixon Silva 11 Фев 2021 в 16:23

1 ответ

Лучший ответ

Вам необходимо установить tax.codigo на 'ISE'. Затем это правильно пройдет через оператор IF.

Измените шпиона, чтобы возвращаемое значение обрабатывало это

    const documentServiceSpy = spyOn(documentService, 'getTaxById').and.returnValue(
      of({ taxMockSuccess })
    );

Каким бы ни был taxMockSuccess, оно должно иметь значение свойства codigo, равное 'ISE'.

1
PMO1948 11 Фев 2021 в 15:22