жасмин callFake не используется;реальная функция еще называется - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь смоделировать вызов функции, используя spyOn и callFake, но реальная функция все еще вызывается вместо поддельной функции.

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

async getOrderProfile() {
    let ordersSuccess = false;
    ...
    try {
      const ordersResponse = await this.ordersService.getOrderProfile(params);      
      ordersSuccess = this.validateResponse(ordersResponse);
       ...
    } catch (error) {
       ...
    }

  }

spec:

describe('OrdersComponent', () => {
  let component: OrdersComponent;
  let fixture: ComponentFixture<OrdersComponent>;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [OrdersComponent],
      imports: [],
      providers: []
    })
    .compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(OrdersComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should call getOrdersNoteData', () => {
    ...
    spyOn(component, 'validateResponse').and.callFake(() => {
      console.log('faked method');
      return true;
    });
    component.getOrderProfile();
    ...
  });
});

Я не вижу, что мой тестовый оператор записан на консоль, и настоящая функция выдает ошибку, потому что она не имеет всех ожидаемых данных. Я не уверен, что я делаю не так в этом.

Я также использовал spyOn returnValue без удачи:

spyOn(component, 'validateResponse').and.returnValue(true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...