7

jQueryまたはネイティブ要素トリガー関数を使用して実際のユーザーイベントをシミュレートすることがますます困難になっています。たとえば、テキスト入力があり、ユーザーが文字を追加できないようにする場合はe.preventDefault()、イベントでjQueryで正規化されたイベントオブジェクトを使用して呼び出すことができますkeydown。ただし、このテストシナリオをプログラムで検証する方法はありません。

次のテストはpreventDefault、jQueryキーダウントリガーが「実際の」イベントではないため、を呼び出さなくても合格します。

input.val('test').trigger(jQuery.Event({
    which: 68
});
expect(input).toHaveValue('test');

正しいコードがないと、入力の値が「testd」(68は「d」の文字コード)であるため、このテストは失敗するはずです。

実際のブラウザUIイベントをシミュレートするためのメソッドやライブラリを知っている人はいますか?

4

4 に答える 4

4

実際のイベントのシミュレーションは非常に複雑です。まず、必要なイベントのタイプを決定し、を使用して作成する必要がありますdocument.createEvent。次に、differentを呼び出しinit*Eventて、イベントオブジェクトを初期化します。最後に、を使用element.dispatchEventしてイベントをターゲットオブジェクトにディスパッチします。

于 2011-07-21T04:19:54.807 に答える
2

Seleniumを試してみてください:http ://seleniumhq.org/

ここにまともな概要があります:http: //blog.frontendforce.com/2010/05/unit-testing-in-javascript-selenium/

于 2011-07-21T02:26:03.437 に答える
0

YUIにはそれを行うためのコードがあったと思います。彼らのコードをダウンロードして見てください。私はそれが呼ばれるsimulate.jsか、または類似したものだと思います。あるいは、セレンがどのようにそれを行うかを見ることができます。

于 2011-07-22T13:52:49.627 に答える
0

これは、非常に最新の状態に保たれているように見えるリポジトリです:https ://github.com/mmonteleone/jquery.autotype

于 2014-02-12T14:34:36.027 に答える