#javascript #jquery #bdd #jasmine
#javascript #jquery #bdd #jasmine
Вопрос:
Как мне следует протестировать действие наведения jQuery с помощью Jasmine? Мой jQuery выглядит так
$('.class').hover(
function() { $('#someid').hide(); },
function() { $('#someid').show(); }
);
Как я мог бы имитировать перемещение действия наведения с помощью jasmine и ожидать, что элемент ‘someid’ будет скрыт и показан как следует?
Ответ №1:
Вы должны иметь возможность напрямую запускать событие наведения курсора мыши, а затем проверять соответствующее поведение:
it("should do something on hover", function() {
$('.class').trigger('mouseover');
expect($('#someid')).toBeHidden();
$('.class').trigger('mouseout');
expect($('#someid')).toBeShown();
});
$('#someid')
должно быть в DOM. Лучший способ сделать это — использовать приспособление.
Комментарии:
1. Спасибо, Майкл. Понял это через некоторое время после того, как я опубликовал вопрос. Однако забыл обновить мой вопрос!
2. можете ли вы объяснить, что вы подразумеваете под использованием приспособления?
3. Я полагаю, он имеет в виду приспособления Jasmine. По сути, приспособления — это HTML-шаблоны вашего приложения, в которых вы хотите протестировать JS, специфичный для вашего DOM. rubygems.org/gems/jasmine-fixtures