Тестирование наведения jQuery с помощью Jasmine

#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