問題タブ [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.

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

angularjs - Jasmine 2 の spyOn を使用して Angular ディレクティブをテストする

Jasmine 2 でテストしようとしている AngularJS ディレクティブがあります。テストの最初に定義したモック サービスを次に示します。

そして、ここに私のテストがあります:

最初の期待 (Note.getNotes が呼び出されることを期待する場所) を削除すると、テストに合格します。そうしないと、失敗します。ただし、console.log に出力されているため、サービスが呼び出されていることがわかります。

私の推測では、メソッドに引数があることを示すために、spyOn を変更する必要があります。

0 投票する
0 に答える
371 参照

javascript - ジャスミンでangular.extend関数をスパイする方法は?

私のコードは以下の通りです:

タブを切り替えることができるかどうかをジャスミンを使用して確認したい..基本的に、クエリタブタブの「refreshFunc」をスパイしたかった..どうすればよいですか?

jasmine テスト ケースで以下の構文を使用してスパイすることができません。var queriesFunc = spyOn(scope.queriesTab,'refreshFunc');

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

javascript - ジャスミンを使用してAngularjsでコントローラーが機能するかどうかをテストする

メソッド コントローラをテストしようとすると、いくつかの問題が発生します。だから、ここにcontactCtrlという名前の私のコントローラーがあります

これが私のcontactRepositoryです

そして、ここに contactCtrl.spec.js という名前の私の仕様ファイルがあります

save メソッドを実行したときに実際に機能するかどうかをテストしたいと思います。

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

angularjs - Jasmine でサービスをモックして呼び出す

AngularJS プロジェクトでサービスをテストしようとしています。私がやろうとしているのは、サービスのメソッドが呼び出されたかどうかを確認することだけです。ジャスミンで「and.callThrough()」を使用すると、メソッドが呼び出され、呼び出されたかどうかを確認できると思いました。ただし、関数カルマをテストすると、「getArtists のスパイが呼び出されることが予想されます」という応答が返されます。

});

これが機能しない理由についてのアイデアは大歓迎です。

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

unit-testing - SpyOn は期待されるスパイを返しますが、関数を取得しました

spyOn を使用してリダイレクトするために、(goToPage 関数を介して) サービスを呼び出すコントローラーをテストしています。シンプルですが、「スパイを期待したが、機能を得た」と出ています。エラー。私は何を間違っていますか?これは私の仕様です:

});

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

javascript - jasmine javascript spyon オブジェクト インスタンス

したがって、ジャスミンテストを構築しようとしているこのJSプロトタイプ(クラス)があり、これらのテストを機能させる方法を理解できないようです。

クラスの重要な部分は次のとおりです。

そして私が書いているテスト:

テストを実行するExpected spy display_date to have been called.と、実際のメソッドが呼び出されているにもかかわらず取得されます。私がスパイしているのはCalendar、私が初期化したインスタンスではないということはわかっていますが、その方法や理由はわかりません。

誰でも私にできる助けをいただければ幸いです。

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

jasmine - Jasmine を使用して (別の) クロージャー内の関数を「spyOn」する

Browserifyを使用しているrequireため、単機能モジュールは次のようにインポートされます。

次のように使用します。

その loadJson 関数を使いたいのspyOnですが、それは不可能のようです。

これはグローバル関数ではないため、これは機能しません。

これはローカル関数ではないため、これは機能しません。

モジュールを Jasmine 仕様に入れるとrequire、関数はそのクロージャ内に表示されますが、実際に使用している他のモジュールと同じクロージャではありませんloadJson

要するに、この場合はおそらく使用できないと思いますspyOn-それは正しいですか? クリエイティブな回避策はありますか?

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

javascript - Angular Jasmine SpyOn $resource ハンドル エラー

を使用する AngularJS サービスを単体テストしようとしています$resource$resourceそれを分離しておくために、Jasmine の spyOn と spyのメソッドを使用したいと思いquery()ます。query()私のコントローラーでは、を呼び出さずに、成功関数とエラー関数をクエリ メソッドに直接渡す短い形式を使用できるようにしたいと考えています$promise.then(success, error)。これは可能ですか、それとも長い形式で立ち往生していquery().$promise.then(success, error)ますか?

これは、私の問題を説明する失敗したテストで作成したプランカーです: http://plnkr.co/edit/hVc2YNnwUDNv7IHODOMD?p=preview

問題を解決すると主張する SO に関するいくつかの質問を見つけましたが、すべて私が使用しているコンポーネントのはるかに古いバージョンを使用しています。plunker から、Angular 1.5.2 と Jasmine 2.4.1 で作業していることがわかります。

関連する質問として、多くのチュートリアルでは、コントローラーで戻り値をquery()配列に割り当てることができ、データが読み込まれると配列が更新されることが示されています。これは最もクリーンなソリューションですが、エラーが発生した場合はどうなるでしょうか? データの読み込みに問題がある場合は、デフォルトのエラー通知が表示されるか、何も起こらないと思います。インターセプターを介して他の場所でエラーを処理し、イベントを発生させて、一般的な非コントローラー固有の方法でユーザーに通知することをお勧めしますか? その場合、インターセプターは、「一部のリクエストが 500 を返した」ではなく、「ベーグルの読み込みに通常より時間がかかっているようです。ここをクリックして再試行してください」など、コンテキストを提供するためにユーザーに表示するメッセージを決定する何らかの方法が必要になると思います。ステータスコード」