Как установить высоту элемента при тестировании в PhantomJS?
Я тестирую на Karma с использованием Jasmine Framework и работаю в браузере PhantomJS без головы. Я пытаюсь проверить директиву AngularJS, касающуюся «бесконечной прокрутки» (автоматическая загрузка элементов, когда пользователь прокручивает около нижней части элемента контейнера). Я не использую jQuery, и я не хочу (если нет другого пути). Я использую свойства .clientHeight , .scrollTop и .scrollHeight . Моя директива работает как положено, по крайней мере, в Chrome.
Я попытался настроить тест для своей директивы, но не могу найти способ создать элемент с ненулевой высотой. Следующий код не доставляет мне радости:
describe('something', function () {
it('works with element height', inject(function ($document) {
var el = angular.element('<div>Lorem ipsum...</div>')[0];
$document.append(el);
// size of non-empty block element should be non-zero by default
expect(el.clientHeight).not.toBe(0);
expect(el.scrollHeight).not.toBe(0);
// it should certainly be non-zero after the height is set manually
el.style.height = '999px';
expect(el.clientHeight).not.toBe(0);
expect(el.scrollHeight).not.toBe(0);
}));
});
Что я делаю не так? Можно ли сделать то, что я пытаюсь сделать?
Короткий ответ
Установка высоты элемента с помощью element.style.height
работает просто отлично. Я просто не правильно добавил элемент в тело документа.