我已经设置了一个简单的函数来处理我构建的菜单组件上的鼠标滚轮事件。该组件工作正常,我试图围绕它编写单元测试,这给了我一个问题。
组件处理程序:
handleWheel: function (event) {
(event.deltaY < 0 ) ? this.moveUp() : this.moveDown();
return false;
}
this.moveUp()/ this.moveDown()只是设置firstIndex
的状态
问题在于,当我尝试为此功能编写测试时,我无法使其工作。我几乎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()的更好方法?
答案 0 :(得分:8)
如果事件处理程序适用于onWheel,则应使用Simulate.wheel
。
事件与Simulate方法的1:1映射。删除“on”和小写第一个字母。
onScroll -> Simulate.scroll
onKeyDown -> Simulate.keyDown
onWheel -> Simulate.wheel