問題タブ [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.
coffeescript - window.location.searchのSinon.JSスタブ
window.location.searchを呼び出す単純な関数をテストしようとしています。選択したURLを返すことができるように、この呼び出しをスタブする方法を理解しようとしています。
働き:
テストケース:
私の最初の試みは、次のように直接値を返すことでした。
もちろん、これは機能しません。スタブを正しく指定しているとは思いませんが、それは私の意図を示しています。
これを解決する方法についてのアイデアは大歓迎です。
javascript - sinon.js を使用して、実際のコンストラクター/プロトタイプに基づくスパイ メソッドで「スパイ オブジェクト」を作成します。
Mocha テストで依存関係をスタブ化する方法として、sinon.js を使用しています。私は古典的なモック アプローチよりも「スパイ」アプローチを好みます。なぜなら、スパイの内省はより明確に見え、古典的なモック オブジェクトを使用したやや後ろ向きな考え方よりも柔軟性が高いからです。
とはいえ、オブジェクト全体のテスト スパイを作成する場合、間違った使い方をしているのではないでしょうか。4 つのメソッドを持つテスト依存関係があり、それらの各メソッドをスタブ化し、そのうちの 1 つまたは 2 つに対してアサーションを作成したいとします。現在、私はこれをやっています:
それから私はただのようなことを尋ねますspyObj.aMethod.calledWith(a, b, c)
。
テストスイート自体でメソッドの名前を繰り返すよりも、クラス全体をモックアウトするより良い方法はありますか? sinon.stub() が特定のオブジェクトのすべてのメンバーを反復しようとしているように見えますが、V8 などの最新の JS ランタイムでは、オブジェクトが実際には列挙可能なものです。また、同等のオブジェクトを返すのではなく、実際のオブジェクトにモンキー パッチを適用しようとしますが、これはやや望ましくありません。インターフェイスに準拠しているが、特に指定しない限り、null オブジェクトのように動作するオブジェクトが必要なだけです。
次のようなことができるとよいでしょう:
上記のようなラッパーを作成するために、Node.js でコンストラクター/プロトタイプのすべてのメソッドを見つけるにはどうすればよいですか?
これは、多くのメソッドで呼び出しをテストすることよりも、ロジックをスタブ化することに関するものです (1 つに制限するか、プッシュで 2 つに制限しようとしています)。たとえば、不要な I/O を実行したり、実行した場合に追加の複雑なフィクスチャが必要になったりする可能性があります。
backbone.js - Qunit + Sinonは、Backboneのモデルイベントをテストします
最近、私は最初の本格的なBackboneアプリのテストをいくつか実行しようとしています。これまでのところ通常のテストでは問題はありませんでしたが、非同期テストを設定しようとして立ち往生しています。
基本的に、無効な属性を持つモデルを保存しようとすると、サーバーAPIは500 HTTPコードエラーのページを返します。これにより、バックボーンで正しい「エラー」状態がトリガーされるかどうかを確認したいと思います。
私はこのようにテストを設定しようとしました:
問題は、save関数のエラーコールバックがモデル内のエラーコールバックをオーバーライドすることです。したがって、それをトリガーする唯一の方法は、手動で行うことです。
私の本番環境ではモデルの保存関数のエラーコールバックがないため、テストするのは正しい方法ではないと思いますが、一方で、テストを評価するためにajax応答を待つようにQunitに指示する方法がわかりませんアサーション。
誰かが私にそれを機能させる方法を提案できますか?ありがとうございました!
ember.js - Ember データの遅延読み込み
私は、ember コントローラーの qunit テストを書いています。私の実際のアプリケーションでは、別のページからルーティングされてデータを取得します。しかし、テストを書いている間、非同期呼び出しを送信し、データを取得するまでテストが実行されて失敗するため、Ember データストアからデータを取得するのに問題があります。同じ実行ループで ember store にデータを返すように強制する方法はありますか? または、それを行う他の方法はありますか?
javascript - Jasmine のビルトイン Spys よりも Sinon.js を使用する利点は何ですか?
フロント エンド コードをテストするための jsTestDriver/Jasmine 環境をつなぎ合わせており、スタンドアロン (またはドロップイン) スパイ用の Sinon.js への参照が多数見られます。Jasmine が UI のテストに使用しない、Sinon.js がテーブルにもたらすものを誰か説明できますか?
javascript - CSS transitionEnd イベントの後に実行される JavaScript を単体テストするにはどうすればよいですか
ブートストラップモーダルウィンドウがあります。qunit+sinonjs (偽のタイマー) を使用すると、1 つの要素がページに残ります ( div class='modal-backdor'
):
twitter-bootstrap (95 行目)を見ると、transitionEnd イベントが発生しています。イベントが発生した後に実行されるコードをテストするにはどうすればよいですか?
javascript - dojoのモジュールではないJSファイルをロードする方法は?
私はjavascriptとdojonoobであると言うことから始めます。ただし、DOHフレームワークを使用して、jsコードの単体テストの作成に取り組んでいます。私が気づいたことの1つは、フレームワークにはXHRリクエストをモックする方法がないようだということです。そこで、モックにシノンを使うことにしました。
ここに私の質問があります、私は私のdojoモジュールにsinonコードをうまくロードすることができません。これが私が試したことです:
テストパッケージを正しいディレクトリにマップし、そこから他のファイルをロードできます。では、どうすればシノンをロードできますか?
javascript - SinonFakeサーバーが自動応答しない
こんにちは私はフェッチを使用してコレクションをテストしています。それを呼び出すと、server.responseを呼び出した後でのみ、偽のサーバーからの応答がありません。目的の結果が得られます。
何故ですか ?
私のコード
javascript - Stubbing and/or mocking a class in sinon.js?
I've created a database wrapper for my application, shown below. To test it, I obviously would like to replace the actual database library. I could create a new class that mocks the query
method and catch all input there, but using sinon.js
seems more appropriate, but how would I use it?
Is the mock
or stub
features of sinon.js
what I should be using?