Ich versuche einen Integrationstest mit Karma zu schreiben. Ich muss einen echten http-Aufruf machen und die tatsächliche Antwort erhalten. Ich habe alle in # 1434 erwähnten Lösungen wie passthrough() und "$ httpBackend: angular.mock. $ HttpBackendProvider" in angular-mocks.js ausprobiert und keiner von ihnen hat funktioniert.Können wir einen echten http-Aufruf im Karma-Test machen?
Hier ist mein Testcode:
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();
});
});
Es wird großartig sein, wenn jemand eine Lösung haben dafür in Karma Test
Während des Tests haben wir unsere Tests wollen schnell laufen und haben keine externen Abhängigkeiten, so dass wir XHR oder JSONP Anforderungen an einen echten Server senden möchten nicht. Alles, was wir wirklich brauchen, ist zu überprüfen, ob eine bestimmte Anfrage gesendet wurde oder nicht, oder alternativ lassen Sie einfach die Anwendung Anfragen machen, antworten mit vortrainierten Antworten und bestätigen, dass das Endergebnis das ist, was wir erwarten. – user1645290