問題タブ [sinon]

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 に答える
1075 参照

javascript - nodeunit で sinon モックを使用する

特にモッキングを行うために、 nodeunitでsinon を使用することを学んでいます。推奨されるアプローチは、sinon-nodeunitを使用することです。documentationによると、モックは各テスト関数mockのパラメーターのメソッドを介して利用できるはずです。test

ただし、これは機能しないようです。nodeunit以下を含むファイルで 実行すると —</p>

— 私はこれを得る:

sinon経由で (1.1.1) とsinon-nodeunit(0.1.2)の両方の現在のバージョンをインストールしましnpm installた。

0 投票する
3 に答える
4750 参照

javascript - Jasmine 単体テストで Sinon を使用して jQuery アニメーションを偽造するにはどうすればよいですか?

.animateページの読み込みから 5 秒後に起動する 1 秒の jQueryアクションがあります。Jasmine ユニット テスト コードで Sinon タイマーを設定し、7 秒後にテストして、アニメーション後のプロパティが適切であるかどうかを確認します。

うまく動かないので、アニメーション自体のインスタンスを Jasmine HTML テスト ページに配置して、何が起こっているかをよく確認しました。

  • Firefox と Chrome では、ページが読み込まれ、アニメーション関数が呼び出され、単体テストがすぐに失敗し、その後 (これもすぐに) アニメーションが目に見えて発生します。

  • IE、Opera、および Safari では、ページが読み込まれ、アニメーション関数が呼び出され、単体テストがすぐに失敗し、アニメーションが表示されません。

私が望んでいたのは次のことでした(すべてのブラウザで):

  • ページが読み込まれ、アニメーション関数が呼び出され、アニメーションが瞬時に完了し、単体テストがすぐに成功します。

Sinon のドキュメントを見ると、偽のタイマーは次のプロセスをカバーしています: setTimeout, clearTimeout, setInterval, clearInterval,Date

jQueryのアニメーションの仕組みはわかりませんが、トランジションにCSSを使っているのではないかと思いますし、SinonのuseFakeTimersではCSSトランジションがカバーされていないので、これが問題だと思います。ただし、問題について私が正しければ、まだ解決策が必要です。

シノン以外も試してみようかな。Jasmine'swaits()はこのテストで完璧に機能しますが、私のようなせっかちな人々にとっては信じられないほど実用的ではありません.

他の提案はありますか?私は JS 単体テストに慣れていないので、あいまいな回答は助けになるどころか混乱してしまうことを覚えておいてください。;o)

0 投票する
2 に答える
1822 参照

javascript - Sinon.JSでgoogle.mapsライブラリをスタブアウトする方法は?

私は次のようなバックボーンモデル内でgoogle.mapsライブラリを使用しています(coffeescript):

私のテストでは、インスタンス化しようとするとRoute、明らかに問題が発生します。googleこの問題が発生しないように、テストでスタブアウトするにはどうすればよいですか?

0 投票する
6 に答える
32164 参照

mysql - Node.jsでMySQL(ORMなし)をどのようにモックしますか?

私はNode.jsfelixgeのnode-mysqlクライアントで使用しています。ORMを使用していません。

私はVowsでテストしており、おそらくSinonを使用して、データベースをモックできるようにしたいと考えています。私は(を除いて)DAL自体を実際に持っていないので、これをどうやって行うのnode-mysqlかよくわかりません。私のモデルはほとんどが単純なCRUDで、多くのゲッターがあります。

これを達成する方法について何かアイデアはありますか?

0 投票する
3 に答える
22088 参照

javascript - jQueryセレクター呼び出しをスタブアウトしますか?

JavaScriptのユニットテストを上手にしようとしています。私は次のコードを持っています:

私のテストランナーはページに入力がない#categoryので、ここでjQueryセレクターをスタブ/モックアウトするにはどうすればよいですか?ジャスミンシノンの両方のドキュメントを見てきましたが、スタブがオブジェクトで動作するため、ここでそれらを機能させる方法を理解できませ$ん。

0 投票する
2 に答える
33627 参照

testing - SinonJS「すでにラップされているajaxをラップしようとしました」

テストを実行すると、上記のエラーメッセージが表示されました。以下は私のコードです(テストにはBackbone JSとJasmineを使用しています)。なぜこれが起こるのか誰かが知っていますか?

0 投票する
2 に答える
4287 参照

javascript - Sinon はイベント ハンドラのコールバックをスパイしていないようです

Jasmin、Simon、jasmin-simon でバックボーン ビューをテストしています。

コードは次のとおりです。

実際、すべてのテストに合格しましたが、1 つだけです。addMessageにアイテムを追加するたびに が呼び出されることを確認したいと思いますthis.collection

ご覧のとおりaddMessage、確かに呼ばれています。(コンソールにログを記録し、必要に応じて呼び出します。呼び出しthis.messageViewのスパイで見逃しているものは何addMessageですか?

ありがとう、ヴィクトル

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

javascript - Backbone.jsの解析メソッド

sinon.jsとjasmine.jsを使用して、最初のbackbone.jsアプリケーションの単体テストを試みています。

この特定のテストケースでは、sinon.js fakeServerメソッドを使用して、次の構造のダミー応答を返しました。

したがって、以下のテストケースで実際にfetch呼び出しを呼び出すと、3つのモデルが正しく返されます。コレクションのparseメソッドで、ルートの「tasks」キーを削除し、backbone.jsのドキュメントに記載されているオブジェクトの配列のみを返すようにしました。しかし、これを行うと、モデルはコレクションに追加されず、collection.lengthは0を返します。

タスクコレクション

ここで何が間違っているのか教えていただけますか?

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

javascript - これは、ノードで依存性注入を行う正しい方法ですか?

私は最近ノードプロジェクトを開始し、テスト駆動開発者として、新しいモジュールで依存性注入の問題にすぐに遭遇しました。これが、依存性注入を行うべきだと私が考えた方法です。私がBDDフレームワークとして誓約を使用していることに注意し、それをSinonで拡張することが重要です。

私のモジュール:

私のテスト:

これが正しい道だと思いますか?モジュールを使用するときに(requireステートメントの後に「()」を追加するなど)それ以上必要ないので、このソリューションが好きです。

0 投票する
3 に答える
6481 参照

javascript - backback.jsクリックイベントスパイがjasmine.jsとsinon.jsを使用して呼び出されていません

私はbackbone.js、jasmine.js、sinon.jsを使用してボタンクリックをテストしようとしています。しかし、次のテストケースは失敗します。私はスパイを使用して、呼び出されているかどうかを追跡しています。これを手伝ってくれませんか。

ありがとう。

新しいタスクテンプレート

NewTaskView

ジャスミンテストケース

ジャスミン出力