問題タブ [jasmine-jquery]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - jasmine-jquery を読み込めません
Rails プロジェクトにjasmine-jquery-rails gem を追加し、spec.js.coffee
jasmine-jquery
ブラウザでは、他のファイル(jqueryなど)とともにファイルを見ることができます
しかし、この構成
エラーのため動作しません
これを修正する方法は?ありがとう
javascript - フィクスチャを使用する Jasmine テストでイベント ハンドラをバインドするためのベスト プラクティスは?
StackOverflow に関するこれら2 つの関連する質問にもかかわらず、これに対する満足のいく答えをまだ見つけていないため、Jasmine-jQuery ユーザーの間で受け入れられているベスト プラクティスがあるかどうかを確認するために投稿します。
基本的な問題は単純で、その 2 つの例が 2 つのリンクされた質問でカバーされています。
私の Javascript には、次の
setup()
ように、イベント ハンドラーをページ上のさまざまなセレクターにバインドする関数があり$('#someDiv').click(someHandler)
ます。この関数はに渡されます$(document).ready
私の Jasmine テストでは、ページから抽出されたさまざまな部分を表す HTML フィクスチャを使用して、それらの要素に対する AJAX インタラクションをテストしています (Jasmine-Rails の「サーバー」バージョンを実行しており、ブラウザで Jasmine テスト レポートを表示できます)。
もちろん、問題は、ハンドラーをバインドしようとするセレクターがsetup()
、フィクスチャーがロードされるまで存在しないことです。その結果、Jasmine テストで明示的にトリガーされたイベントは、そのハンドラーをバインドする関数が既に実行されているため、フィクスチャの DOM 要素によって取得されません$(document).ready
。
フィクスチャが読み込まれるまでJasmine が呼び出しを遅らせることができれば$(document).ready
、私は最高です。しかし、どうやらそれはできないようです。
上記の 2 つの StackOverflow の質問から、これを回避するためのさまざまな方法を集めましたが、すべて満足のいくものではありませんでした。
バインディング コードを
setup
HTML フィクスチャ自体にコピーします。これは非 DRY であり、ほぼ確実にフィクスチャが現実と同期しなくなる原因となります。また、フィクスチャは目立たない JS を表すため、コードとマークアップを混在させないようにする必要があります。setup
関数を必要とするテスト ケースで関数を明示的に呼び出します。setup
これは単純なケースでは機能しますが、冪等でない場合は失敗します。では、上に示したコードの代わりに次の
setup
ようなものを使用します。$(document).on('click', '#someDiv', someHandler)
(私はjQuery 1.10.1を使用しています。)実際にこれを試しましたが、機能しません.ロードされたフィクスチャに一致する要素が含まれていても、その要素で「クリック」をトリガーしても呼び出され#someDiv
ません。someHandler
うまくいったとしても、(私が正しく理解していれば)this
ハンドラーが呼び出されたときの値は、イベントを最初に受け取った要素ではなく、実際にイベントを処理した要素を反映するため、面倒です。では
setup
、 のようなものを使用しますが$('#someDiv').live(someHandler)
、live
jQuery 1.7 で廃止され、1.9 で削除されました。
テスト環境に対応するためだけに作業コードに変更を加える必要がなく、DRY に違反する必要のない、私が見逃している他の方法はありますか?
javascript - jasmine jquery - データ属性を持つイベントをスパイ
次のイベントが正しくトリガーされた場合、jasmine-jquery を使用してテストする適切な方法を見つけるのに少し苦労しています
基本的に、次のように見える 2 つのテストを書きたいと思います (????? の部分はすべて、私にとっては謎です)。
誰かがこれで私を助けてくれることを願っています =) 乾杯
ruby-on-rails - レールでヘッドレスジャスミンテストを実行するとエラーが発生する
ビルド サーバーでヘッドレス ジャスミン テストを実行し、結果を junit 形式で出力するように rake タスクをセットアップしました。タスクは次のとおりです。
これを実行すると、次のエラーが発生します。
Rails 3.2.13、jasmine 1.3.2、headless 1.0.1、rspec 2.14.1、Jasmine-jQuery 1.5.8 を使用しています。
この男が抱えている問題に似ていると思います: TypeError: jasmine.getEnv().currentSpec is null
javascript - jasmine スパイの myLinks がエラーと呼ばれることが予想される
ジャスミンのスパイオン機能を理解するのに苦労しています。簡単な関数を作成し、メソッドが呼び出されたかどうかをテストします。
ここに私のテストがあります:
これは、次の失敗を返します。
ここで何が間違っていますか?