7

作成したメニュー コンポーネントでマウス ホイール イベントを処理する単純な関数をセットアップしました。コンポーネントは正常に動作します。その周りに単体テストを作成しようとしていますが、問題が発生しています。

コンポーネント ハンドラ:

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

        return false;
}

this.moveUp() / this.moveDown() は単に状態を設定しますfirstIndex

問題は、この機能のテストを作成しようとすると、機能しないことです。渡す eventDetails オブジェクトと関係があることはほぼ 100% 確信していますが、正しくフォーマットする方法がわかりません。

// 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() をテストするより良い方法を知っていますか?

4

1 に答える 1

8

イベント ハンドラが onWheel 用の場合は、 を使用する必要がありますSimulate.wheel

Simulate メソッドへのイベントの 1:1 マッピングがあります。「on」を削除し、最初の文字を小文字にします。

onScroll   ->   Simulate.scroll
onKeyDown  ->   Simulate.keyDown
onWheel    ->   Simulate.wheel
于 2014-11-03T15:43:21.793 に答える