問題タブ [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.
node.js - jasmine-node と jquery-jasmine を使用したクライアント側 JavaScript のテスト
jasmine-node
と を使用していくつかの JavaScript 単体テストを作成しようとしてjquery-jasmine
いますが、構成の問題で立ち往生しています。現在、実行しようとしている唯一の「テスト」は次のとおりです。
テストを実行しようとすると、次のエラーが発生します。
loadFixtures
テストの行をコメントアウトすると、正常に動作します。
正しくロードされていないと思いjasmine-jquery
ますが、どうすればよいかわかりません。nodejs
(私はorの経験がほとんどありませんnpm
。)
それが診断価値がある場合、which jasmine-node
(bash内で)実行すると結果が得られますが、実行すると結果は得られwhich jasmine-jquery
ません。これは、前者は実行可能であり、後者はそうではないためだと思いますが、仮定はしたくありません。(npm show
ただし、両方のパッケージがインストールされていることを示します。)
私は何を間違っていますか?
どうもありがとうございました。
ruby-on-rails - エバーグリーン + ジャスミン-jquery
jasmine-jquery の新しい json フィクスチャ機能を利用したいのですが、うまくいきません。JS テスト用のエバーグリーンを備えた Rails 3.2 アプリがあります。https://github.com/velesin/jasmine-jqueryの readme が言ったように、ディレクトリjasmine-jquery.js
内に配置すると自動的spec/javascripts/helpers
にロードjasmine-jquery
されます。
jasmine-jquery (および jasmine-ajax などの他のライブラリ) を spec/javascripts/helpers ディレクトリ (自動的にロードされるように) に配置し、フィクスチャを spec/javascripts/fixtures ディレクトリに配置します。
しかし、そうではありません。内にファイルを読み込もうとしましたspec_helper.js
が、require
唯一のポイントは public dir です。
私もこの答えを見つけました:https://groups.google.com/forum/?fromgroups=#!topic/ruby-evergreen/0Tma5RKqZB8 しかし、私の場合、解決策はうまくいきません。
jasmine-jquery.js
では、 loadFixtures メソッドを使用できるように、どこで evergreen / jasmine にファイルをロードするように指示できますか?
jasmine - 外部の html ファイルを使用せずに jasmine テストに DOM 要素を追加するにはどうすればよいですか?
私はいくつかの簡単なジャスミンテストを書いています.jsファイルのみをテストするときにDOMがないため、テストしているコードが存在しないフォームを探しているため、例外が発生します:$("form")[0]
テストされたjsファイルでは:
jasmine-jquery について少し読んだところ、外部の html ファイルで html フィクスチャを使用できることに気付きました。そのフローは非常に面倒に思えます。テスト (他の何かに焦点を当てている) が実行されるように空の有効なフォームを追加するだけなので、<form></form>
追加のようなもので十分だと思います。
最初はsandbox()関数が解決策になると思っていましたが、divしか作成されないようで、フォームが必要です。
ジャスミンスペックファイルのコードのみを使用していくつかの要素を追加する簡単な方法はありますか?
jquery - 1つのテストで多数の複数のjQueryバージョンを使用してJasmineをテストする
PhpStormでJasmineとJSTestDriverを使用しているのですが、複数のバージョンのjquery(つまり、1.7.x、1.8.x、1.9.0、2.0b)に対して単体テストを行うために1つのjsテストファイルを作成しようとしています。これを行うための最良の方法は何ですか?私はここSOでいくつかの質問を読みましたが、実際の答えはありません。
- describeをループ内に配置し、各jQueryを手動でロード/削除しますか?
- 私はjasmine-jqueryを使用しているので、フィクスチャをロードできますが、HTMLのみ(およびjson / css)のようであるため、jsファイルをロードする方法がわかりません。
- 各スクリプトを段階的にロードし、jQuery.noConflictを呼び出すと、スクリプトを機能させることができますか?
- jQueryのバージョンが変更されるたびにjQueryプラグインをリロードする必要がありますか?
javascript - RequireJSとJasmineを使用してjQueryの「変更」によって呼び出される関数をスパイする
私は RequireJS と Jasmine の両方にかなり慣れていないので、最初にいくつかの基本的なテストをセットアップするのに少し苦労しています。2つを一緒にセットアップして機能させる方法に関する多くの情報を見つけました。しかし、私には解決できない興味深い問題があります。
残念ながら、問題を表現する最善の方法がわからないので、ここにいくつかのコードを示します。
main.js:
操作.js:
ManipulateSpec.js:
(余分なコードを削除しました)
私console.log
が中にいる場合Manipulate.pushChange
、それは発砲しています。問題は、スパイされているオブジェクトが、ファイルManipulate
で引数として渡されるオブジェクトと同じではないことです。main.js
したがってmanipulate.pushChange
、it()
ブロックを追加すると、テストに合格します。
を呼び出す Backbone.js アプリの回答が見つかりましたdelegateEvents
。バニラ Javascript、jQuery などに同様のソリューションがあるかどうかはわかりませんが、見つかりません。
私のファイルを構造化するより良い方法はありますか? それとも、2 つのオブジェクト間でイベントを「コピー」する方法ですか? createSpy
この場合、使用が私を大いに助けるとさえ信じていません。
javascript - Capybara-Jasmine を使用したヘッドレス Jasmine テスト: AJAX テストが失敗する
これは ruby-NO-rails プロジェクトで、Jasmine、Jasmine-Jquery を使用してフロントエンドのテストを行っています。
また、LoadFixtures を使用して、テンプレートでの DOM 操作をテストします。ブラウザ上では、すべてが草のように美しく幻想的です。
次に、ヘッドレスに移行します。Capybara-Webkit、Capybara-Jasmin gem を使用します。テストは緑色で、Jasmin-Jquery LoadFixture メソッド (ajax を使用) を使用するものだけが血のように赤く、私を殺しています。
元の Jasmine テストに WaitsFor を追加しても役に立ちません。PreloadFixtures もそうではありません。それは私が推測するカピバラ・ジャスミンの微調整であるべきです..
ワイルドなアイデアをいただければ幸いです。また、より良いテスト設定も歓迎します。
K
javascript - Jasmine-jQuery でフィクスチャ HTML を使用しようとしましたが、テストに合格しませんでした
私はJasmine-jQueryの初心者です。フィクスチャ HTML を使用しようとしましたが、テストに合格しません。
フィクスチャ.html:
fake_code_for_question_spec.coffee:
fake_code_for_question.coffee:
ジャスミン 結果:
ご親切にありがとうございました。
javascript - Jasmine-jQuery を使用してフィクスチャ HTML を変更しようとしましたが、機能しません
私はJasmine-jQueryの初心者です。フィクスチャ HTML を使用しようとしましたが、テストに合格しません。
フィクスチャ.html:
fake_code_for_question_spec.coffee:
fake_code_for_question.coffee:
ジャスミン 結果:
ご親切にありがとうございました。
fixtures - jasmine-jquery フィクスチャがロードされない
問題は、jasmine-jqueryがspec/fixturesフォルダーからフィクスチャーをロードしないことです。jasmine-jquery ソース コードを見ると、フィクスチャのデフォルト パスはspec/javascripts/fixturesです。私が持っているバージョンでは、spec/javascripts/fixturesフォルダーはありません。Ruby gem用のものらしい。そのjavascriptsフォルダーも作成しようとしましたが、まだロードできません。フィクスチャ フラグメントを SpecRunner.html 本体内に配置すると、機能します。
これが私のhtmlフラグメントです:
仕様ファイル:
それはパスのバグか何かですか?
解決済み: google-chrome の問題です。デフォルトでは、同一オリジン ポリシーにより、他のドメインへのアクセスは許可されません。解決策は、ローカル サーバーからアプリを実行するか、Firefox を使用することです。
javascript - .toHaveBeenCalledWith を使用した Jasmine テストがサインアップ フォームで失敗する
私が取り組んでいるシングル ページ アプリケーションには、サインイン フォームとサインアップ フォームの 2 つのフォームを持つログイン ビューがあります。次の仕様では、これらのフォームのテストについて説明します。Jasmine-jQuery 1.4.2を使用しています。
サインイン フォームのテストは正常に実行されますが、サインアップ フォームのテストは失敗します。
アプリケーションでフォームを使用しても問題ありません。データが送信されます。すべて正常に動作します。テストだけではありません。
回避策
ただし、実行を遅らせると、テストは成功します。
なぜこれが機能し、「通常の」実装が失敗するのですか?
以下は、特定のケースを単純化したものです。