2015-02-17 2 views
1

Извинения, если это покрыто в другом месте, изо всех сил пытались найти исчерпывающий результат при поиске.Имитировать наведение мыши в тесте единицы жасмина?

У меня есть Javascript-приложение, которое содержит аудио-описания для mouseover для определенных элементов. Они реализованы с помощью наведения курсора мыши слушатель, как так

menuOption.addEventListener("mouseover", function(){ 
    audio.play("menuoption"); 
    }); 

В моем тесте у меня есть что-то вроде (псевдо-код!):

spyOn(audio, "play") 

    menuOption.mouseover() 

    expect(audio.play.calls.count()).toBe(1); 

Это Mouseover, кажется, не срабатывает. Я использую жасмин и фантомы. Когда я меняю указатель мыши на щелчок, он работает нормально, поэтому я склонен думать, что мои тесты в порядке, и проблема с наложением мыши является проблемой?

ответ

0

Точно так же, как element.click() является нестандартным, так и element.mouseover(). Вы можете попытаться явно генерировать событие (на основе this answer torazaburo):

function mouseover(el){ 
    var ev = document.createEvent("MouseEvent"); 
    ev.initMouseEvent(
     "mouseover", 
     true /* bubble */, true /* cancelable */, 
     window, null, 
     0, 0, 0, 0, /* coordinates */ 
     false, false, false, false, /* modifier keys */ 
     0 /*left*/, null 
    ); 
    el.dispatchEvent(ev); 
} 
mouseover(menuOption); 
Смежные вопросы