$ httpBackend backend mock ile bir yasemin birim testi çalıştırdığımda bir sorun yaşıyorum. Servis çağrısından dönen değeri test etmek istiyorum. Servisi çağırıyor ve bitiş noktasına vuruyor ama yöntemin kendisinden bir hata almaya devam ediyorum. Bunun işe yaraması için ne kaçırdığımı bilmiyorum. Herhangi bir yardım gerçekten takdir edilmektedir.
// hata
TypeError: 'undefined' is not an object (evaluating 'data[0].data')
/// birim test
describe("DataService", function() {
describe('testing service', function() {
var TheService, scope;
beforeEach(function() {
module(moduleName);
module('services');
});
beforeEach(inject(function($injector,$rootScope) {
TheService = $injector.get('TheService');
scope=$rootScope.$new();
}));
it('should have a method defined', function() {
expect(TheService.getStuff).toBeDefined();
});
it('should have a method defined', inject(function($httpBackend) {
var mock = { data: 'World' };
$httpBackend.whenGET("/theurl/getStuff").respond({ data: 'World' });
$httpBackend.expectGET("/theurl/getStuff");
TheService.getStuff();
scope.$digest();
expect(TheService.getStuff).toEqual(mock);
$httpBackend.flush();
}));
});
});
// hizmet yöntemi
function TheService($http, $q) {
var vm = this;
vm.getStuffs = null;
vm.getStuff = getStuff;
vm.theresponse = {};
function getStuff() {
var deferred = $q.defer();
$http({
method: 'GET',
url: "/theurl/getStuff"
}).success(function(data){
vm.theresponse = data[0].data
deferred.resolve(vm.theresponse);
}).error(function(){
deferred.reject('An error occurred');
});
return deferred.promise;
}
}
thanks @JB. Bunu özlediğime inanamıyorum. – Jimi