2014-11-03 2 views
6

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

компонент обработчика:

handleWheel: function (event) { 
     (event.deltaY < 0) ? this.moveUp() : this.moveDown(); 

     return false; 
} 

this.moveUp()/this.moveDown() просто устанавливает состояние firstIndex

Вопрос заключается в том, что при попытке написать тест для этой функциональности I не может заставить его работать. Я почти на 100% уверен, что он связан с объектом eventDetails, с которым я перехожу, но я не знаю, как его правильно отформатировать.

// set firstIndex = 0 
TestUtils.Simulate.scroll(menu, {deltaY: 52}); 
expect(menu.state.firstIndex).to.equal(1); 
// error: expected 0 to be 1 

Кто-нибудь знает, как правильно форматировать TestUtils.Simulate.Scroll()/не знаю лучшего способа испытать onWheel()?

ответ

8

Если для обработчика событий используется переключатель onWheel, вы должны использовать Simulate.wheel.

Существует 1: 1 отображение событий для имитации методов. Удалите «on» и в нижнем регистре первую букву.

onScroll -> Simulate.scroll 
onKeyDown -> Simulate.keyDown 
onWheel -> Simulate.wheel 
+0

Спасибо, это сработало. Также я понял, что вызов wheel() ищет компонентный узел, а не только сам компонент. – badAdviceGuy

Смежные вопросы