angular アプリのコンポーネントをテストする必要があります。問題は、何かをテストするたびに、カルマ テストランナーがそのエラーを表示することです。
Error: Unexpected request: GET /foo
No more request expected
いくつかの調査の結果、テスト フレームワークがすべてのリクエストをブロックすることが明らかになりました。テストで受け入れられたすべてのリクエストを次の方法で宣言する必要があります。
beforeEach(inject(function ($httpBackend) {
$httpBackend.expectGET("/foo").respond("bar");
}));
だから私はリクエストに期待することができます。
問題は、ここに示すように、 $httpBackend を初期化し、その後モジュール/アプリをロードできないように見えることです:
beforeEach(inject(function ($httpBackend) {
$httpBackend.expectGET("/foo").respond("bar");
}));
beforeEach(module('myApplication'));
で失敗します
Error: Injector already created, can not register a module!
しかし、最初にモジュール/アプリをロードしてから $httpBackend を構成するには、手遅れです:
beforeEach(module('myApplication'));
beforeEach(inject(function ($httpBackend) {
$httpBackend.expectGET("/foo").respond("bar");
}));
で失敗します
Error: Unexpected request: GET /foo
No more request expected
アプリケーション構成内で ajax リクエストを行う必要があるため、失敗しますmyapp.config(function(...) {.. doSomeAjax ..}
問題を解決する方法はありますか?