カルマを使用して統合テストを作成しようとしています。私は実際のhttp呼び出しを行い、実際の応答を得る必要があります。私は#1434で述べたすべての解決策をpassthrough()を使って、「$ httpBackend:angular.mock。$ HttpBackendProvider」とコメントしてみました。ここでカルマテストで実際のhttpコールを行うことはできますか?
は私のテストコードです:
use strict';
describe('module: main, service: AuthService', function() {
beforeEach(module('ngMockE2E'));
// load the service's module
beforeEach(module('main'));
// load all the templates to prevent unexpected $http requests from ui-router
beforeEach(module('ngHtml2Js'));
// instantiate service
var AuthService;
var $q;
var deferred;
var $rootScope;
var response;
var scope, http, flush, httpBackend;
beforeEach(inject(function ($httpBackend,AuthService,$q, $rootScope) {
httpBackend = $httpBackend;
AuthService = AuthService;
$q = $q;
$rootScope = $rootScope;
deferred = $q.defer();
scope = $rootScope.$new();
}));
it('should do something', function() {
expect(!!AuthService).toBe(true);
expect(AuthService).not.toBeNull();
});
it('verify authenticating user', function() {
AuthService.authUser('[email protected]','abc123').then(function (result) {
console.log("Result of successful auth user is ");
console.log(result);
expect(result).toEqual(true);
done();
}, function (error) {
console.log("error of failure auth user is ",error);
expect(false).toBe(true);
done();
});
httpBackend.whenPOST('/oauth/token').passThrough();
$rootScope.$digest();
//httpBackend.flush();
});
});
アンギュラアプリケーションがサーバーからいくつかのデータを必要とする場合、誰かがカルマテスト
テスト中は、我々は我々のテストはすぐに実行したいと我々は実サーバにXHRまたはJSONPリクエストを送信したくないので、外部依存関係を持っていない、あなたのデータに応じて変更します。私たちが本当に必要とするのは、特定のリクエストが送信されたかどうかを確認するか、アプリケーションがリクエストを行い、事前に訓練された応答で応答し、最終結果が期待どおりであることを主張することだけです。 – user1645290