我设置了一个简单的函数来处理我构建的菜单组件上的鼠标滚轮事件。该组件工作正常,我正在尝试围绕它编写一个单元测试,这给了我一个问题。

组件处理程序:

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()的更好方法吗?

最佳答案

如果事件处理程序用于onWheel,则应使用Simulate.wheel

事件与模拟方法之间存在1:1的映射。删除“上”并小写第一个字母。

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

08-17 13:58