Проверьте ветку с Жасмин Карма - PullRequest
0 голосов
/ 03 июня 2018

Мне было интересно, как я могу проверить ветку с Jasmin / Karma в Angular.Например, у меня есть эта простая функция:

  loadData(){
    if(this.faktor){ // here it should be true or false
      this.callMethod1();
    }else{
      this.callMethod2();
    }
  }

Мне нужно будет увеличить тестовое покрытие, и это необходимо для тестирования ветвей.Я попробовал с примером ниже, но он не работает.Мне нужно установить this.factor.isExist () в true.Как я могу это сделать?

Вот мой тестовый компонент:

import { async, ComponentFixture, TestBed } from '@angular/core/testing';

import { ChartComponent } from './chart.component';

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

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [ ChartComponent ]
    })
    .compileComponents();
  }));

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

  it('should create', () => {
    expect(component).toBeTruthy();
  });

  it('should call method1  if factor exist', () => {
    const spy =  spyOn(component, 'callMethod1');
    component.factor.isExist() as true;
    expect(spy).toHaveBeenCalled();
  })

  it('should call method2 if factor not exist', () =>{
    const spy =  spyOn(component, 'callMethod2');
    component.factor.isExist() as false;
    expect(spy).toHaveBeenCalled();
  })
});

1 Ответ

0 голосов
/ 03 июня 2018

Невозможно сделать покрытие кода 100%, но у вас очень простой случай, когда вы можете охватить весь код, который вы здесь показываете.

it('should call method1  if factor exist', () => {
    const spy =  spyOn(component, 'callMethod1');
    component.factor = 'Your mock data goes here'
    component.loadData();       // should execute if part
    expect(spy).toHaveBeenCalled();
  })

  it('should call method2 if factor not exist', () =>{
    const spy =  spyOn(component, 'callMethod2');
    component.factor = null;    
    component.loadData();     // should execute else part
    expect(spy).toHaveBeenCalled();
  })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...