Тестовый случай переключения в Jasmine

#unit-testing #jasmine #tdd #karma-jasmine

#модульное тестирование #jasmine #tdd #карма-жасмин

Вопрос:

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

 public onMReceived(event) {
    switch (event amp;amp; event['event']) {
      case 'onOplected':
        this.Next();
        break;

      case 'temp':
        break;
    }
  }
 

Я написал правильный тестовый пример, когда случай выбран, но для покрытия другого случая, когда регистр ‘temp’

  it('should call temp on onOplected value in switch', () => {
    //const toggleSpy = spyOn<any>(component, 'Next');
    component.ngOnInit();
    fixture.detectChanges();
    component.onMessageReceived({ event: 'temp', data: {} });
    // expect(toggleSpy).toHaveBeenCalledWith(undefined);
  });
 

как я должен написать expect для этого, пожалуйста, если кто-нибудь может помочь в этом, пожалуйста, руководство.

Ответ №1:

Вы можете проверить, что next не был вызван или что-то в этом роде.

  it('should do nothing if the event is temp and not call next', () => {
    const toggleSpy = spyOn<any>(component, 'Next');
    component.ngOnInit();
    fixture.detectChanges();
    component.onMessageReceived({ event: 'temp', data: {} });
    // also change your toHaveBeenCalledWith(undefined) to .toHaveBeenCalled() in your previous test
    expect(toggleSpy).not.toHaveBeenCalled(); // put .not.toHaveBeenCalled();
  });