Как проверить offsetHeight в модульном тесте машинописи? - PullRequest
0 голосов
/ 19 сентября 2018

Мне нужно проверить эту функцию

  getMainHeaderHeight(): number {
    const header = <HTMLElement>this.getMainHeaderElement();
    return header instanceof Element ? header.offsetHeight : 0;
  }

, но в моем модульном тесте я не могу смоделировать вывод функции getMainHeaderElement () и классэто не экземпляр Элемент и относительный тест не пройден header instanceof Element ложно и, следовательно, значение, возвращаемое функциями, равно 0, а не elementHeight

import { DomService } from './dom.service';

describe('DomService', () => {
  let service: DomService;

  const elementHeight = 100;
  let element: any;

  beforeEach(() => {
    service = new DomService();

    function Element() {
      this.offsetHeight = elementHeight;
    }
    element = new (Element as any);
    element.innerHTML = 'text';
  });

  describe('#getMainHeaderHeight', () => {
    it('should return the main header element height', () => {
      let getMainHeaderElementSpy = jasmine.createSpy('getMainHeaderElement');
      getMainHeaderElementSpy.and.returnValue(<Element>element);

      service['getMainHeaderElement'] = getMainHeaderElementSpy;

      const mainHeaderHeight = service.getMainHeaderHeight();
      expect(mainHeaderHeight).toEqual(elementHeight);
    });
  });
});

Есть ли способ проверить это или я иду в неправильном направлении?

Заранее спасибо

...