問題タブ [jasmine]
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.
javascript - Coffeescript の匿名関数のテスト方法
これについて Stackoverflow で多くの議論が行われていることは知っていますが、それについて直接的な答えを得ることができませんでした。そして、私はコーヒースクリプトについてあまり知りません。
基本的に、私はこのコーヒースクリプトを持っています
return42 = ->
42
そして、コンパイルすると、これが得られます
そのため、世界に公開されていない無名関数にラップされている関数です。だから私がこのテストを書くとき
return42() が定義されていないため、テストは失敗します。どうすればこれを解決できますか。
どうもありがとうございました。:-)
javascript - Jasmine のディレクトリ構造をカスタマイズするにはどうすればよいですか?
Jasmine Rubygem を使用する場合、javascripts
フォルダー内にサブフォルダーを持つ、生成されたディレクトリ構造に準拠する必要があるのは非常に面倒ですspec
。私はすべてJavascriptで書いているので、役に立たないと思います。
public
生成された を変更することでフォルダー内でこれを変更できることがわかりましたが、フォルダーjasmine.yml
を保持する必要があるため、これは私が望んでいたものではありjavascripts
ません。
このフォルダ構造をカスタマイズする方法はありますか?
ruby-on-rails-3.1 - Jasmine 仕様で見つからない CoffeeScript で定義されたクラス
Rails 3.1 バックエンドで backbone.js アプリを構築しています。私は CoffeeScript を使用してバックボーン クラスを記述し、Jasmine (jasmine-headless-webkit 経由) をテスト用に使用しています。
次の (部分的な) ツリーがあるとします。
...で定義されてavia_view_spec.js.coffee
いる について知っていると思います。Avia.AviaView
avia_view.js.coffee
ただし、実行すると次の出力が得られますbundle exec jasmine-headless-webkit
。
Myjasmine.yml
には次のものが含まれます。
Jasmine にコンテンツをロードするように指示する必要があると思いますavia_view.js.coffee
が、その方法が完全にはわかりません。src_files
のセクションに明示的な参照を追加しjasmine.yml
ても、違いはないようです...
誰かが私がここで間違っていることを教えてもらえますか? 私はそれが単純なものだと思う...
ruby-on-rails-3.1 - Jasmineを使用してJavascriptコンストラクターをスパイする
いくつかのJavascriptクラス(backbone.jsビュー、Coffeescriptで記述)の仕様を作成していますが、あるビューが別のビューを構築するようにしたいと思います。
次のように、コンストラクターをスパイしてこれを実行しようとしています。
AviaViewinitialize()
を呼び出すと、MatricesViewコンストラクターが確実に呼び出されます。これは次の行のおかげです。
それは間違いなく機能します。アプリを手動で実行すると、の間にコンストラクターが呼び出されていることがわかりますinitialize()
。しかし、私のジャスミン仕様は失敗します:
私は私の同僚の何人かと話しました、そして彼らはこれがうまくいくはずであることに同意します...誰かがコンストラクターをスパイする良い方法を提案できますか?
javascript - Sinon.JSでgoogle.mapsライブラリをスタブアウトする方法は?
私は次のようなバックボーンモデル内でgoogle.mapsライブラリを使用しています(coffeescript):
私のテストでは、インスタンス化しようとするとRoute
、明らかに問題が発生します。google
この問題が発生しないように、テストでスタブアウトするにはどうすればよいですか?
maven - HTMLUnit が " ReferenceError: "console" is not defined." をスローする原因は何ですか?
Javascript ライブラリをテストするためにジャスミンを MVN ビルドに統合しようとしています。現在、次のエラーがスローされ始めています。
ReferenceError: 「コンソール」が定義されていません。
明らかに、バグを引き起こしているのは私のコンソールの使用です。私のcoeは実際にコンソールを使用する前にその存在をテストしますが、MVNはそれをあまり好まないようです。
この問題について叫ぶためにそれをケーシングするアイデアはありますか?
javascript - Jasmineのテスト実行中にhaml-jsテンプレートが見つかりません
Jasmineを使用して(jasmine-headless-webkit経由で)いくつかのbackbone.jsビューをテストしようとしています。テスト中にhaml-jsテンプレートにアクセスできないことを除いて、すべてが正常に機能しています。
私の見解では、次のコードは正常に機能します。
...しかし、Jasmine仕様の一部として実行すると、次のエラーが発生します。
で何か間違ったことをしているのではないかと思いjasmine.yml
ます。テンプレートファイルを明示的に含めましたが、それでも失敗します。
おそらく私はここで間違ったアプローチを取っているだけです...Jasmineを使用してJSTとjQueryへの呼び出しをスタブ&モックアウトする必要がありますか?厳密に単体テストのアプローチでは、私がすべきだと言っています。その場合、テンプレートへのアクセスがないことは問題ではありません。
テストへの私のアプローチ、または特定のJSTの失敗に関するヒントは、大歓迎です。
javascript - ウィジェットファクトリを使用して構築されたjQueryプラグインを使用するジャスミン仕様を実行するときのTypeError
インライン編集にtoggleEditというjQueryプラグインを使用しています。
コードが実際にページで使用されている場合は、すべて正常に機能します。
ただし、私のテストスイートは次のエラーで失敗します。
TypeError: Cannot call method 'remove' of undefined
clear
この特定のプラグインのメソッド内からトリガーされるように追跡しました。そのソースファイルはここにあります。
そのコードには2つの関連するビットがあります。
1-_init
機能
ご覧のとおり、プラグインが最初にインスタンス化されると、data
構造体を使用しself
て新しく作成された要素が格納されます。
2-clear
機能
次に、clear
関数はその構造にアクセスして要素を取得しようとします。そのとき、ジャスミン仕様の範囲内で、前述の例外を除いて失敗します。
誰かが似たようなものを見たことがありますか?
編集:
これは私の仕様です。エラーを再現できる最も単純なコードです。
http://alz.so/static/plugins/toggleedit/jquery.toggleedit.js
javascript - Jasmine ユニット テストでマウス クリックをシミュレートする
私はジャスミンが初めてで、これまでにいくつかの基本的なテストを設定できました。私が今やろうとしているのは、div、タグなどの要素でマウスクリックイベントをシミュレートするテストを作成することです
私のテストでは、リンクをクリックすると div コンテナーが展開されるかどうかを判断できるはずです。これはクラス名で判断します。
私のソース コードには、クリック イベントをリッスンするイベント リスナーがあります。
そしてHTMLマークアップは
私が試みている単体テストは次のとおりです。
しかし、クリック イベントはソース コードによって決してピックアップされないようです。
私は何を間違っていますか?
前もって感謝します
jquery - 呼び出しに対する引数のプロパティをテストするためのJasmine仕様の改善
次のCoffeescriptコードを使用して、1つのbackbone.jsビューの初期化が別のビューを構築することを検証しています。
これはうまく機能しますが、私はそれを改善することが可能であるはずだと思わずにはいられません。私は次のような構文を想像しています:
... wheretoHaveBeenCalledMatching
は、引数のスプラットを取り、成功を示すためにtrueを返し、それ以外の場合はfalseを返す関数を取ります。
誰かがこのようなものに出くわしたことがありますか、それとも私はここで自分自身を転がす必要がありますか?または、このコードを改善する方法についてのより良い提案はありますか?