[解決済み] Jasmineの "callThrough "と "callFake() "の実用的な例が欲しい
質問
を実装するために勉強しています。
karma
&です。
Jasmine
をよりよく理解するために、その例をいくつか見ていきます。
について少し混乱しています。
callThrough
.
誤解があれば訂正してください、若干似ているのは
callFake()
のように、実際に関数を呼び出しているわけではありません。で
callFake()
また、戻り値の型を持つ関数も提供しますが、これは
callThrough
.
Jasmineのドキュメントより。
and.callThroughでスパイをチェーンすることで、スパイはそれへのすべての呼び出しを追跡しますが、さらに実際の実装に委譲します。
この点について、ご教示ください。
更新しました。
悩んだ末に、共有する価値のある記事ということに気がつきました。 この質問につまずいた人へのMediumの記事です。
どのように解決するのですか?
よく理解できたようですね。
スパイ:and.callThrough
スパイをand.callThroughで連結することで、スパイはすべての を呼び出しますが、さらにその呼び出しを実際の を実装しています。
スパイ:and.callFake
スパイを and.callFake で連結することで、スパイへのすべての呼び出しが、and.callFake で連結されたスパイになります。 は提供された関数に委譲されます。
スパイされた関数が、フェイクが必要とする引数を受け取った場合。 も取得することができます。
プラス
callThroughを追加した場合、スパイによる呼び出しを追跡するだけではありません。メソッドを呼び出してテストすることもできます。ここでのメソッドは実際に呼び出される。callFakeでは、引数をチェックすることで、正しく呼び出されるかをテストするだけです。本当のメソッドは呼び出されません。ということは、このメソッドは
fake call
関連
-
[解決済み】npm UNMET PEER DEPENDENCYの警告を修正するにはどうすればいいですか?
-
[解決済み】Angularjs accordion ng-click on panel-header
-
[解決済み] Angular JS $locationChangeStart 次の url ルートオブジェクトを取得する
-
[解決済み] AngularJSのディープリンクとは何ですか?
-
[解決済み] ag-gridの行の追加/削除
-
[解決済み] AngularJSでkeypressイベントを使用するには?
-
[解決済み] ディレクティブ '...' が要求するコントローラ 'ngModel' が見つかりません。
-
[解決済み] Jasmineで'Error'が投げられることを期待するテストを書くには、どうすればよいですか?
-
[解決済み] JasmineのJavaScriptテスト - toBeとtoEqualの比較
-
[解決済み】Angular / TypeScriptのプライベートメソッドのユニットテストをJasmineで記述する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 適用がすでに進行中のエラー
-
[解決済み] ajaxリクエスト時にAngularjsのローディング画面が表示される。
-
[解決済み] シンプルなangularjsの日付入力
-
[解決済み] ng-repeat内で$indexを使用して、クラスを有効にしてDIVを表示するにはどうすればよいですか?
-
[解決済み] エラーです。[$injector:unpr] 不明なプロバイダです。ルートプロバイダ
-
[解決済み] AngularJSの「href」と「ng-href」の違いについて
-
[解決済み] Apigee API へのリクエストで 401 レスポンスエラーが発生する
-
[解決済み] md-selectでデフォルト値を設定する方法
-
[解決済み] Angularjsを使用してローカルストレージにデータを保存するにはどうすればよいですか?
-
[解決済み] AngularJSでEnterキーを押したときにフォームを送信する