Модульное тестирование Angular метод, у которого нет оператора return

#angular #angular-unit-test

#angular #angular-unit-test

Вопрос:

Мой метод :

 flyout() {
    document.getElementById("transition1").style.cssText="transform:translateX(-120%)";
    document.getElementById("transition2").style.cssText="transform:translateY(-120%)";
}
  

spec.ts :

 it('Tesing Void function', function() {
    const fixture = TestBed.createComponent(AppComponent);
    fixture.detectChanges();
    const component = fixture.debugElement.componentInstance;
    component.flyOut();
    // How should I write expect statement
});
  

Кто-нибудь может мне помочь, как написать ожидаемый отчет….

Спасибо.!!!

Ответ №1:

Вы можете запросить свой элемент в своем expect и проверить, был ли применен стиль или нет.

 fixture.detectChanges();
expect(fixture.debugElement.query(By.css('#transition1')).style.transform).toEqual('translateX(-120%)');
  

Комментарии:

1. Но этот стиль меняется только при нажатии кнопки спереди end…so я не могу ожидать того же css, если на него не нажать.

2. Но вы вызываете метод в своем тесте component.flyOut() , поэтому стиль должен измениться.