должен вызывать функцию внутри ngOnInit - PullRequest
1 голос
/ 20 марта 2020

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

it('should call TestMethod method inside ngOnInit' , async() => {
    spyOn(component , 'TestMethod')
    fixture.detectChanges()
    expect(component.TestMethod).toHaveBeenCalled()
  })

Ниже приведена ошибка, которую я получаю

Expected spy TestMethod to have been called.

BeforeEach ниже

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

Ответы [ 2 ]

0 голосов
/ 20 марта 2020

Я нашел решение, и оно работает.

it('should call TestMethod method inside ngOnInit' , async() => {
    const obj = spyOn(component , 'TestMethod')
    component.ngOnInit()
    expect(obj).toHaveBeenCalled()
  })
0 голосов
/ 20 марта 2020

Присвойте шпионский объект переменной и используйте эту переменную в ожидаемой функции

    it('should call TestMethod method inside ngOnInit' , async() => {
    const obj = spyOn(component , 'TestMethod')
    fixture.detectChanges()
    expect(obj).toHaveBeenCalled()
  })
...