問題タブ [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.

0 投票する
1 に答える
132 参照

ruby-on-rails - jasmine-jquery を読み込めません

Rails プロジェクトにjasmine-jquery-rails gem を追加し、spec.js.coffee

jasmine-jqueryブラウザでは、他のファイル(jqueryなど)とともにファイルを見ることができます

しかし、この構成

エラーのため動作しません

これを修正する方法は?ありがとう

0 投票する
1 に答える
2638 参照

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 の質問から、これを回避するためのさまざまな方法を集めましたが、すべて満足のいくものではありませんでした。

  1. バインディング コードをsetupHTML フィクスチャ自体にコピーします。これは非 DRY であり、ほぼ確実にフィクスチャが現実と同期しなくなる原因となります。また、フィクスチャは目立たない JS を表すため、コードとマークアップを混在させないようにする必要があります。

  2. setup関数を必要とするテスト ケースで関数を明示的に呼び出します。setupこれは単純なケースでは機能しますが、冪等でない場合は失敗します。

  3. では、上に示したコードの代わりに次のsetupようなものを使用します。$(document).on('click', '#someDiv', someHandler)(私はjQuery 1.10.1を使用しています。)実際にこれを試しましたが、機能しません.ロードされたフィクスチャに一致する要素が含まれていても、その要素で「クリック」をトリガーしても呼び出され#someDivません。someHandlerうまくいったとしても、(私が正しく理解していれば)thisハンドラーが呼び出されたときの値は、イベントを最初に受け取った要素ではなく、実際にイベントを処理した要素を反映するため、面倒です。

  4. ではsetup、 のようなものを使用しますが$('#someDiv').live(someHandler)livejQuery 1.7 で廃止され、1.9 で削除されました。

テスト環境に対応するためだけに作業コードに変更を加える必要がなく、DRY に違反する必要のない、私が見逃している他の方法はありますか?

0 投票する
1 に答える
1519 参照

javascript - jasmine jquery - データ属性を持つイベントをスパイ

次のイベントが正しくトリガーされた場合、jasmine-jquery を使用してテストする適切な方法を見つけるのに少し苦労しています

基本的に、次のように見える 2 つのテストを書きたいと思います (????? の部分はすべて、私にとっては謎です)。

誰かがこれで私を助けてくれることを願っています =) 乾杯

0 投票する
1 に答える
374 参照

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

0 投票する
1 に答える
7095 参照

javascript - jasmine スパイの myLinks がエラーと呼ばれることが予想される

ジャスミンのスパイオン機能を理解するのに苦労しています。簡単な関数を作成し、メソッドが呼び出されたかどうかをテストします。

ここに私のテストがあります:

これは、次の失敗を返します。

ここで何が間違っていますか?