問題タブ [squirejs]
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 - スクワイアは他のテストを破っている
Karma、Jasmine、Jasmine.Async、Sinon、Chai を使用しています。
朗報です...このテストは正しく機能します。依存関係が嘲笑され、スパイが呼び出され、意図的にテスト対象を壊すとテストが失敗します。
悪いニュースは...以前は問題がなかった他のテストの一部が、奇妙な理由で失敗するようになったことです。例:
Error: Backbone.history has already been started
と
TypeError: 'undefined' is not an object (evaluating 'Backbone.Validation.mixin')
スニペットをコメントアウトすると
その後、他のテストが再び機能します。以前にこのようなことが起こったことがありますが、通常はシノンモックが復元されないことが原因でした。このinjector.clean()
呼び出しは、私が望んでいた魔法の弾丸を提供していないようです.
javascript - Squire.js で依存関係を注入するときに Jasmine 仕様が実行されない
Squire の依存関係をモックアウトして、Backbone ビューの Jasmine 単体テストを実行しようとしています。
私のビューの依存関係はBaseview
、ICanHaz テンプレートと i18n 翻訳です。
Squire と Backbone を定義した後に依存関係をモックアウトし、Squire インジェクターを使用してビューを要求します。ただし、Grunt を使用してテストを実行すると、次の警告メッセージが表示されます。
警告: Spec が実行されていません。構成エラーはありますか? --force を使用して続行します。
これが私の仕様です:
私の基本的な単体テストが取り上げられない理由を誰かが知っていますか?
requirejs - カルマの各テストの前 (または後) にコードを実行する方法
カルマで squire.js を使用しようとしていて、squire.clean() を実行して、次のテスト スイート (ジャスミンを使用しています) を実行する前にすべてのモックを消去したいと考えていますが、カルマを構成する方法がわかりません。テスト スイートの前 (または後) に何かを実行します。
方法はありますか?
javascript - 単体テストのためにインラインのrequirejs依存関係をsquireでモックする方法は?
たとえば、インラインのrequireでrequirejsを使用しています:
私の特定のケースではanotherDep
、定義に含めることはできません。
mocha でテストする場合、次のようなテスト ケースがあります。
は、 ではなく直接anotherDep
呼び出すため、失敗します。回避策は、グローバル スコープで置き換えることです。require
squire.require
require
これは機能します (何らかの方法でオブジェクトにsquire.require
バインドする必要があることに注意しsquire
てください。これを行うためにアンダースコアを使用しています)。ただし、スパイはタイミングのために呼び出されません。テストも変更する必要があります
より良い方法はありますか?そうでない場合は、これが同じ問題に遭遇している他の人に解決策を提供することを願っています.
javascript - 単体テストで RequireJs ローダー プラグインの応答をモックするにはどうすればよいですか
テストしようとしているコードは、RequireJs loader pluginsに依存しています。requirejs/textを使用した例:
text!templates/foo
特定の単体テストでは、応答をモックし、テストに関連するものでオーバーライドしようとしています:
私は RequireJs の依存関係のモックソリューション、特にSquire.jsを見てきましたが、それらはすべてプラグインの応答ではなく、通常の依存関係のモックに適しているようです。
また、実際の呼び出しを置き換えるためにsinonなどのスタブ ライブラリも調べましたが、問題があるようです。require
おすすめの練習法は?text
私のrequirejs構成でプラグイン全体をモックのものに置き換えるのではなく、特定のテストでその応答の一部をオーバーライドするだけです。
私のセットアップは node+mocha+requirejs です
編集
Squire に関する私の問題を確認するには、この例のフィドル プロジェクトを参照してください。
http://runnable.com/VUBoI0ex6v9Gs-BJ/squirejs-with-plugins-for-node-js-and-hello-world
requirejs - Squire Mock Model がリストで機能しない
私の Squire 仕様では、コントローラーが取るモデルをモックしています。コントローラーはオブジェクトのリストをモデルに動的に追加しますが、仕様が期待どおりに実行されるときはそこにありません。String パラメーターがモデルに動的に追加されたときに機能します。