問題タブ [httpbackend]

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 投票する
0 に答える
642 参照

angularjs - angularJs httpリクエストjsonpをテストする方法

そのため、途中でいくつかの単体テストを作成しようとしながら、このチュートリアルに従おうとしています。

さて、私は ergast 開発者 API への $http リクエストをテストしようとして立ち往生しています。チュートリアルでわかるように、$http リクエストはサービスergastAPIserviceに対して行われます。


次に、コントローラーで使用されます。


これ(サービス)をテストするにはどうすればよいですか。私はこのようなものを始めました:



私が言ったように、これを機能させるために、応答に入力したものはすべて、テストで期待するものである必要があり、実際のモックされた $http 要求とは何の関係もないと思いました...または私はこれをすべて間違っている

ヒントや正しい方向への指示は非常に高く評価されます。

乾杯!

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

angularjs - Angular + Karma + Jasmine - 偽のバックエンドを使用したテストとアプリ

Angular WebApp を開発していますが、BackEnd がまだ準備できていないため、偽のバックエンド ( $httpBackend) を使用して REST 要求をテストしています。

これは app.js で次のように定義されています。

そして、アプリケーションを実行すると正しく動作しますgrunt serve

問題は、私が作成したテストを実行しようとしたときに始まります (Jasmine で、Karma を介して実行されます)。ここでは、サンプル テストを示します。

app.js から偽のバックエンド構成を削除すると、完全に機能しますが、そのままにしておくと、カルマ レポートが表示されます。Error: No pending request to flush !

これは、app.js で宣言されたインターセプターがトリガーされ、テストで定義された $httpBackend がリクエストでトリガーされないようにするためだと思います。

この問題を解決する方法について何か考えはありますか?

前もって感謝します

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

ajax - $httpBackend を通過するすべての AJAX リクエストをログに記録します

を通過するすべてのリクエストをログに記録するにはどうすればよい$httpBackendですか? .respond()で模擬応答を返す方法、 でリクエストを通過させる方法は知って.passThrough()いますが、リクエストを傍受してログに記録してから通過させるにはどうすればよいですか?

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

angularjs - AngularJS アプリで Karma 単体テストを実行すると、「予期しない要求」エラーが発生する

$http サービスを使用して記事の詳細を取得するコントローラーの単体テストを作成しようとしています。

コントローラ:

単体テスト:

しかし、次のエラーが発生し続けます。

単体テストを書くのはこれが初めてで、その後にいくつかのチュートリアルを読みました。私は何が間違っているのか分かりませんか?

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

angularjs - Karma-Jasmine で Angular Controller をテストする際の $httpbackend の問題

コードをフィドルに入れて、必要に応じて簡単に更新して「操作」できるようにします。

残りは非常に冗長であるため、フィドルにあります:http://jsfiddle.net/tLte2/

基本的に最初のテストは成功し、難しいテストではありませんが、2 番目のテストは JSON スタブに依存し、次のようなエラーが発生します。 PhantomJS 1.9.7 (Mac OS X) PlayersListCtrl PlayersListCtrl should fetch authentication token FAILED Error: No pending request to flush !

httpBackendこの $ stiffがどのように機能するかを把握することはできません。それを起動して結果をコントローラーのスコープに設定することは可能でなければなりませんか?

--edit 基本的にすべてが完璧に配線されており、いくつかの簡単なテストを問題なく実行できますが、そこに JSON スタブ データを取得するのは面倒なようです。回避策として、コントローラ スコープの JSON に記述された配列を次のように定義するだけcontroller.players = ['one','two','three',..... etc ......] です。その$httpBackendようなものは、修正するのがそれほど難しくないはずですよね?

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

angularjs - whenDELETE : undefined は関数ではありません

これが私がやっていることです:

controller.js

controllerspec.js

私は得るTypeError: Undefined is not a function at line "HERE"

何が欠けていますか?

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

angularjs-directive - 単体テスト: ディレクティブ内のコントローラーでの http 呼び出し

さて、ここに状況があります:

  1. httpBackend.flush()blockの先頭でコメントアウトするitと、isolateScope はundefined.
  2. blockhttpBackend.flush()の最後でコメントアウトすると、期待どおりに正しく実行されなかったことを示唆しています (http 呼び出しの後に httpBackend.flush が呼び出されることはありません)。itisolateScope.uploadResult.length = 0httpPOST

3.両方を保持するとhttpBackend.flush()(これは実行されるべきではありません)、予想どおりエラーが発生します: Error: No pending request to flush !.

誰でも私を案内してもらえますか?私はカルマの初心者です。

前もって感謝します。