問題タブ [spyon]
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 - $httpBackend で spyon を使用した Jasmine テストが機能しない
$httpを使用するメソッドでspyonを使用して、JavaScriptでジャスミンテストを作成しようとしています。私は $httpBackend を使用してこれを嘲笑しましたが、残念ながらスパイは、メソッドが実際に $http の使用後に呼び出されたという事実を認識していないようです。デバッグで呼び出されていることがわかるので、呼び出されていないと報告する理由がわかりません。スコープの使用に問題があるのではないでしょうか? または $httpBackend.flush\verify の順序 ?:
テスト対象のコード
テスト設定
作業テスト:
動作しないテスト (ただし、count-0 を返すが呼び出される)
angularjs - Angular プロバイダーのファクトリ メソッドをスパイする方法は?
Jasmine では、spyOn(object, 'function') を実行できます。「provider()」として使用されるプロバイダーをスパイしようとしています。それをスパイする方法は?
プロバイダーは次のようになります。
コントローラーでは、次のように使用されます。
object.method() の場合、spyOn(object, 'method') を実行できます。provider() はどうですか?
私はグーグルで検索しましたが、役立つものは何も見つかりません。spyOn(provider)を試してみたのですが、「undefined()メソッドが存在しません」というエラーが出ました。
プロバイダーをモックしようとさえしましたが、成功しませんでした。( http://www.sitepoint.com/mocking-dependencies-angularjs-tests/ )
javascript - spyOn: スパイを期待していましたが、Function を取得しました
Jasmine フレームワークを使用して Javascript テストを作成しています。spyOn()
メソッドを使用して、特定の関数が呼び出されたことを確認しようとしています。ここに私のコードがあります
しかし、私は
スパイを期待したが、機能を得た
エラー。行を削除しようとしspyOn(text, "match");
ましたが、同じエラーが発生しましたspyOn()
。機能が機能していないようです。何か考えはありますか?
angularjs - Angularjs: 単体テスト用に spyOn を使用して location.path() をモックする
私はすでにこの投稿(および他の投稿) を読みましたが、この単純な単体テストを機能させることができません。Jasmineのバージョン2を使用しています。私の工場はとてもシンプルです:
そして、私の単体テストは同じくらい簡単です:
これはテストに合格しません( false が「ホーム」になるとエラーが発生します)。
私が間違っていることは何ですか?spyOn が呼び出されたことを確認する方法はありますか (1 回だけ)?
angularjs - Jasmine を使用した angularJs の単体テスト: 無限再帰関数のモック
Jasmine
次のように、コントローラーの作成時に呼び出す無限再帰関数を備えたコントローラーで単体テストを試みています。
しかし、単体テスト用に以下のコードのようにこのコントローラーを挿入することはできません。そうしないと、このエラーが発生します。
関数をモックする方法は他にありませんが、コントローラーのインジェクションの前に関数を定義するとupdateInfo() method does not exis
、コントローラーがまだインジェクトされていないため、エラー ( t) が発生します。
次のように、関数 updateInfo() を spyOn でモックしようとします。
基本的なものが欠けています(ジャスミンは初めてです)?どうすればよいですか?
javascript - jasmine / spyOn を使用して、特定のメソッドが渡された場合にのみメソッドをモックする
Jasmine
.spyOn()
特定のパラメータが特定の値である場合にのみ基づいて、を使用してメソッドをモックすることは可能ですか? 基本的に、それが渡された場合はテストユーザーを送信し、それ以外の場合は null を送信するGetUser
ようにモックしたいメソッドがあるとします。username = 'test'
いくつかのテスト偽コードは次のようになります。
これは、次のように C# / Moq と同等です。
を使用したカスタム コーディングでこれを実行できることはわかっていますがand.callFake
、かなり面倒です。実際に動作するテスト コードは次のようになります。
javascript - ノードジャスミンのクラスメソッドをスパイする方法は?
モジュール User があります-次のように:
クラス メソッドを使用する関数:
ジャスミンのテストがあります -
基本的に、ユーザー クラス メソッドをスタブ化しfindByUsername
、独自の結果、つまり nul エラーとユーザー (検索が成功したかのように) でコールバックを偽造したいと考えています。
アプリの多くの「クラス」メソッドにスパイがあり、この問題はありません。これは私を少し困惑させています。エラーは、スパイに追加.and.callThrough
または.and.callFake
スパイに追加したときにのみ表示されます..これを削除した瞬間、テストはタイムアウトします.スパイが機能し、非同期ウォーターフォールが続行するために必要なコールバックを呼び出さないため、これは理にかなっています.
私が得ているエラーは -