2011-10-28 18 views
1

Backtoneで生成されたDOMオブジェクトとのユーザー対話のテストを実行するために、Lettuce/SplinterまたはJsTestDriverを取得できません。たとえば、hello backbone tutorialでは、「リスト項目を追加」ボタンのユーザーのクリックをシミュレートし、<li>テキストの要素「hello world1」が表示されていることを確認します。ユーザーとJavaScriptとのやり取り

JsTestDriver:私は、ボタン要素への参照を取得し、それにclick()を呼び出すが、その後document.getElementsByTagName("li")は失敗する可能性があります(またはnullを返し?)。

Johansenの優れたbookは、イベントハンドラをテストすることが適切にユニットテストのタスクではないと言います。 (?)だから私は、Djangoのための私のBDDツールを試してみました:

レタス/スプリンター/ジャンゴ:スプリンターブラウザ専用のオブジェクトは、それへの参照を取得したり、それをクリックし、ボタンのテキストを気に決して見ることはできません。 (HTMLで作成された要素に対しては、これらの操作を処理します。)world.browser.is_text_present()もfind_by_id()も動作しません。待っている時間を渡すことは助けにはならなかった。

私は本当にセレンに直接行かないようにしたいと思っていました。んで、どうする?

+0

まだ回答はありますか?私はゾンビを復活させたくありません。 – Wieczo

答えて

1

DOMイベントを発生させることは技術的には「ユニットテスト」ではないかもしれませんが、ユニットテストフレームワークを使用してこれを行うことはできません。

とにかく、あなたはあなたの望みを達成することができます。 JsTestDriver、しかし私はそれを手動で行うことに反対することを勧めます。 click()(これはあなたが期待しているとは思わないでしょう)。私は通常jQueryを使用してイベントを発生させますが、これは安全に、たとえばJsTestDriver。これは、実動コードでjQueryを使用しなくても機能します。

+0

Thx、しかし私は完全には従っていない。 jQueryを使用してターゲット要素への参照を取得し、その上でclick()を呼び出すことをお勧めしますか?または、jQueryイベントモデルを使用してイベントを呼び出す方法をいくつか追加しましたか?私は後者のためにjQueryをブラッシュアップする必要があります。はい、クリック()は私が期待するように動作していません。 – chernevik

+0

jquery.simulate.jsライブラリ、w/jQuery、およびQUnitについて考えていますか?私はそれが働くようにしたので。 – chernevik

関連する問題