【问题标题】:Testing for mouse wheel events测试鼠标滚轮事件
【发布时间】:2014-12-30 07:14:13
【问题描述】:

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

组件处理程序:

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

【问题讨论】:

    标签: reactjs reactjs-testutils


    【解决方案1】:

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

    事件与 Simulate 方法之间存在 1:1 的映射关系。去掉“on”并将第一个字母小写。

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

    【讨论】:

    • 谢谢,这行得通。我还意识到,wheel() 调用正在寻找组件节点,而不仅仅是组件本身。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 2021-03-07
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多