問題タブ [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 投票する
1 に答える
1958 参照

angularjs - $httpBackend を使用した角度テストが「400 throw」エラーで失敗する

何時間も $httpBackend を使って NewPostController をテストしようとしてきました。問題は、応答に 2xx 以外のステータス コードを設定すると、テストが失敗することです。

NewPostController には次のメソッドがあります。

失敗パスのテストに問題があります。

テストは「400 throw」というメッセージで失敗します (コールスタックなし)。サブテストの順序を変更し、expectPOST の代わりに whenPOST を使用して、Angular ドキュメント ( https://docs.angularjs.org/api/ngMock/service/ $httpBackend) で行うようにメソッドを組み合わせようとしましたが、成功しませんでした。

助けてください。

編集:

PostService を見ると、「400 がスローされた」というのは理にかなっていますが、エラーは angular によって処理されると予想していました。この記事の「ネストされたサービス呼び出しの問題の処理」セクションのために、私はそれを投げました。これは deferred.resolve/reject メカニズムの短いバージョンであると想定されています。

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

javascript - AngularJS + Jasmine 単体テスト - $httpBackend の応答がスコープ値を更新しない

私は現在、角度コードを単体テストする方法を学ぼうとしており、Jasmine を使用しています。次の AngularJS 固有のコードがあります。

ここに私のジャスミンコードがあります:

私の問題は、最後のitブロック内のコメントアウトされたexpectステートメントにあります。httpBackend Get リクエストでレスポンスを指定すると、角度範囲が更新されると思いました。ただし、私の specRunner.html ページには次のエラーがあります。

明らかに、これは $scope.externalData が更新されないことを意味します。私が台無しにした場所を誰かが見ることができますか?

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

angularjs - $httpBackend return promise 値の問題

AngularJS を使用してログイン機能を実装したいと考えており、バックエンドは Rails にあります。$httpBackend を使用して実装することにしましたが、問題があります。

$httpBackend関数に入ると、データベースからの最新のトークンでトークンを更新しますが、それが起こっていないように見えるサービスに値を返す必要があります。これが約束や延期などに関係していることは知っていますが、私はそれらに精通していません。

これは私のコードです

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

javascript - コントローラーがページの読み込み時にリクエストを行うと、$httpBackend.expectGET が失敗する

私はこれを解決しようとして何時間も生きてきました。コントローラーで、ページの読み込み時に HTTP リクエストを行うメソッドを呼び出します。

単体テストでこれを期待しています:

しかし、カルマは報告します

それは意味がありません。テストでいつ/どこでexpectGET/コントローラーを作成するかのすべての組み合わせを試しましたが、何も役に立ちませんでした。次に、ページの読み込み時にデータを取得し、そのためのテストを実行する別のコントローラーがあることに気付きました。違いは、HTTP 要求が発生するためにルート パラメーターが存在する必要があることです。だから私は電話を

テストに foo パラメータを挿入しました。合格しました!明らかに、訪問者が URL でそのようなものを見たいと思う人はいません。代わりに whenGET を使用しても合格になります。

誰かがこの問題の解決を手伝ってくれますか? ほぼ2年前にこれについて尋ねている人を見つけましたが、彼は何の答えも得ませんでした(削除された私のものを除いて)。

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

angularjs - whenGET を使用してフラッシュする保留中の要求はありませんが、expectGET は使用しません

$httpBackend を使用して角度サービスをテストすると、予期しない結果が得られます。

httpBackend.expectGET を使用してテストを実行すると、テストは期待どおりに機能します。ただし、 whenGET を使用してまったく同じテストを実行すると、テストは失敗し、「フラッシュする保留中の要求はありません」というメッセージが表示されます。

テスト中のサービスは次のとおりです。

テストは次のとおりです。

「フラッシュする保留中の要求はありません」というメッセージでGETが失敗した場合の両方で、expectGETが渡されます。いくつかの投稿で見たように、 $rootScope.$digest() を使用してみましたが、うまくいきませんでした。テストは、expectGETとexpectWHENを除いて同じなので、何が起こっているのかわからない?

そして、ここにエラーの詳細があります:

  • アンギュラー1.2.28
  • angular-mocks 1.2.28
  • ジャスミン 2.0.0
0 投票する
3 に答える
778 参照

javascript - AngularJS & Karma-Jasmine - $httpbackend は、保留中のリクエストが 1 つ以上ある場合にのみフラッシュします

$httpbackend.flush();保留中のリクエストがある場合にのみ呼び出すことはできますか? だから私は決して得ません

エラー: フラッシュされていない要求: 1,2,3,...,n

または

エラー: 保留中のフラッシュ要求はありません!

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

javascript - AngularJS と Karma-Jasmine - verifyNoOutstandingExpectation(); の場合は機能しません。またはverifyNoOutstandingRequest(); 一人で立つ

フラッシュされていない http リクエストが 1 つあるので、このようにすると

それは期待どおりに動作し、私は得る

エラー: フラッシュされていないリクエスト: 1

エラーメッセージは から来ていますが$httpBackend.verifyNoOutstandingRequest();、このようにすると

エラーはスローされません。

なぜそうなのですか?両方の方法を常に一緒にしておく必要がありますか?

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

angularjs - Angular ngmock httpBackend - 1つのリクエストを除いてすべて無視しますか?

単体テストを書くのは初めてなので、これがばかげた質問である場合は申し訳ありません。サービス呼び出しからのモック データに依存する Angular コントローラーでメソッドをテストしようとしていて、そのサービス呼び出し (ngResource) もモックしたい場合、コントローラーで行われた他の要求を httpBackend に無視させる方法はありますか初期化中?

whenGET または expectGET 定義を before ブロックに配置し、テスト内でコントローラーのみをインスタンス化しようとしましたが、flush() を呼び出すと、httpBackend が他の要求 (エラー: 予期しない要求) を予期していることが常にわかります。他のすべてのリクエストのモックを作成したくはありません。このテストに使用しているものだけです。

もちろん、これはばかげた考えかもしれません。偽のデータを直接提供することもでき、コントローラーのメソッドと一緒にサービスをテストすることもできないからです。これが機能することを確認しました。おそらく正しい答えは、コントローラー内からサービスをテストするべきではないということです。

FWIW、Sinon fakeServer も使用してみましたが、どうやら Angular の XHR 実装にも対応していないようです (サーバーは応答しません)。

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

angular-resource - 複数の連続した httpBackend リクエストにより、予期しないリクエストが発生する

条件が満たされるまでリソースをポーリングするシーケンスをテストしています。

以下のテストは失敗しますError: Unsatisfied requests: GET /user_workshops/1

テスト順序を並べ替えて、2 番目を 2 番目のexpectGET直前に配置しようとしましたhttpBackend.flush()が、次のようになります。