3

$http を嘲笑したくありません。主な理由は、いくつかの統合テストを作成しているため、すべての AJAX リクエストを実行したいからです。現在、私のテストでは、何もトリガーされません。どんな提案も大歓迎です。

4

2 に答える 2

0

Jasmine テストを使用している場合、angular モックはモックされた $httpBackend を提供しますが、実際の $httpBackend はまだ存在します。サービスを注入するときにオリジナルを使用するようにプロバイダーに指示するだけです。テストでは次のようになります。

var original_http_backend = null; 
angular.module('ng').config(['$httpBackendProvider', function($httpBackendProvider) {
     original_http_backend = $httpBackendProvider;
}]);

beforeEach(module(function($provide) {
     $provide.provider('$httpBackend', original_http_backend)
}));

また、このアプローチは、一般に、フロント エンド コードをテストするには不適切な方法であることも指摘しておく価値があります。これは、バックエンドの依存関係が追加され、フロントエンドの動作を分離できないためです。応答をモックアウトして、それでテストすることをお勧めします。

ただし、私たちのモック応答はそこでテストするためにバックエンドで開発されたため、この機能を使用することになりました。オブジェクトを繰り返したくありませんでした。この方法により、それらを使用することができました。

于 2014-01-21T17:54:52.800 に答える