2011-10-14 19 views
5

Jak powinienem testować działanie akcji JQuery z Jasmine? Moje jQuery wyglądaTestowanie jQuery Hover z Jasmine

$('.class').hover(
    function() { $('#someid').hide(); }, 
    function() { $('#someid').show(); } 
); 

Jak mogłem symulować przenoszenie działania najechaniu jaśminu i oczekiwać, że „someid” element jest ukryty i pokazano, jak powinno?

Odpowiedz

12

Powinieneś być w stanie bezpośrednio wywołać zdarzenie mouseover, a następnie przetestować dla odpowiedniego zachowania:

it("should do something on hover", function() { 
    $('.class').trigger('mouseover'); 
    expect($('#someid')).toBeHidden(); 
    $('.class').trigger('mouseout'); 
    expect($('#someid')).toBeShown(); 
}); 

$('#someid') musi być w DOM. Najlepszym sposobem na to jest przez urządzenie.

+0

Dzięki Michael. Zorientowałem się, kiedy po tym, jak opublikowałem pytanie. Zapomniałem jednak o aktualizacji mojego pytania! – membLoper

+1

możesz wyjaśnić, co masz na myśli, używając urządzenia? – chovy

+0

Wierzę, że oznacza on Jasmine Fixtures. Zasadniczo urządzenia są szablonami HTML Twojej aplikacji, gdzie chcesz przetestować swój JS specyficzny dla DOM. http://rubygems.org/gems/jasmine-fixtures – membLoper