Ben birim testine bir post isteği yapmak basit bir fabrika deneyin tanımlanmamış $$ akımı atar:
'use strict';
angular.module('app').factory('UserFactory', function ($http, $rootScope, $location) {
return {
'addUser': function (user) {
$http.post('/api/user',
{
'user': user,
'url': $location.path(),
'title': $rootScope.title
}).then(function(result){
console.log(result);
}).catch(function(err){
console.log(err);
});
}
};
});
Ve bu zorundayız birim test vardır
'use strict';
describe('UserFactory', function() {
var factory;
var httpBackend;
var rootScope;
var location;
beforeEach(module('app'));
beforeEach(inject(function($injector, $httpBackend, $rootScope, $location) {
httpBackend = $httpBackend;
rootScope = $rootScope;
location = $location;
factory = $injector.get('UserFactory');
rootScope.title = 'Home';
spyOn(location, 'path').and.callFake(function(param) {
if(param) {
return location;
} else {
return '/home';
}
});
}));
it('should correctly call the url /api/user with all informations provided in the body', function() {
httpBackend.when('POST', '/api/user')
.respond(200);
httpBackend.expectPOST('/api/user', {'user': 'user test', 'url': '/home', 'title': 'Home'});
factory.addUser({name: 'user test'});
httpBackend.flush();
httpBackend.verifyNoOutstandingExpectation();
httpBackend.verifyNoOutstandingRequest();
});
});
Maalesef testi atmak: Mesaj isteğine geçirilen vücudu sınamak ... TypeError: undefined is not an object (evaluating 'current.$$route.title')
httpBackend.flush()
fonksiyon denir ve neden anlamıyorum
Tam Yığın İzleme:
spyOn(location, 'path').and.callFake(function(param) {
if(param) {
return location;
} else {
return '/home';
}
});
Bir rota benim routeProvider
yapılandırmasında /home
denilen yoktu, bu yüzden başarısız oldu:
TypeError: undefined is not an object (evaluating 'current.$$route.title') in C:/front/app/scripts/app.js (line 9)
C:/front/app/scripts/app.js:9:14402
[email protected]:/front/bower_components/angular/angular.js:17348:33
C:/front/bower_components/angular-route/angular-route.js:647:36
[email protected]:/front/bower_components/angular/angular.js:15757:30
C:/front/bower_components/angular/angular.js:15773:39
[email protected]:/front/bower_components/angular/angular.js:17025:28
[email protected]:/front/bower_components/angular/angular.js:16841:36
[email protected]:/front/bower_components/angular-mocks/angular-mocks.js:1779:45
C:/front/test/unit/factories/user-factory-spec.js:86:22