Тестирование вложенной функции в жасмине - PullRequest
0 голосов
/ 16 ноября 2018

Я хочу сделать тестирование в моем проекте, и функция, которую я хочу проверить, является вложенной функцией, там есть функция в функции

функция, подобная этой:

  ngOnInit() {
    this.getMenu()
  }

это мой тестspec:

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

        beforeEach(async(() => {
          TestBed.configureTestingModule({
            imports: [

            ],
            providers: [
              { provide: AuthenticationService, useClass: MockAuthenticationService }
            ]
          })
          .compileComponents();
        }));

        beforeEach(() => {
          fixture = TestBed.createComponent(NavigationComponent);
          //navComponent = TestBed.createComponent(NavigationComponent);
          component = fixture.componentInstance;
          fixture.detectChanges();
        });

  it('getMenu should called', ()=>{
        spyOn(component, 'getMenu');                  
        fixture.detectChanges();                      
        expect(component.getMenu).toHaveBeenCalled();
    })

Это работает, когда я тестирую ngOnInit, но я не знаю, как проверить "getMenu"

спасибо за помощь

1 Ответ

0 голосов
/ 16 ноября 2018

Вы можете проверить, был ли вызван метод getMenu() при запуске ngOnInit().

Вам нужно шпионить за этим методом, а затем проверить.

spyOn(compInstance, 'getMenu');                  //spy on getMenu
fixture.detectChanges();                         //calls ngOnInit() and updates dom
expect(compInstance.getMenu).toHaveBeenCalled(); //verify getMenu() invokation

Если вы хотите проверить логику getMenu(), то вы можете напрямую вызвать ее из своего тестаspec, а затем проверьте его вывод.

let res = compInstance.getMenu();
expect(res).toBe('pizza');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...