$ http kullanan bir hizmet için birim sınaması yapmaya çalışıyorum. Jasmine'i kullanıyorum ve bu hatayı almaya devam ediyorum:TypeError: ayrıştırılmış, angularjs hizmet birimi sınaması üzerinde tanımlı değil
describe ('Invite Service', function() {
var $httpBackend, inviteService, authRequestHandler;
var token = '1123581321';
beforeEach(module('myapp.services'));
beforeEach(inject(function ($injector) {
$httpBackend = $injector.get('$httpBackend');
authRequestHandler = $httpBackend.when('/invites/' + token + '/get-invite').respond({userId: 'userX'}, {'A-Token': 'xxx'});
inviteService = $injector.get('inviteService');
}));
afterEach (function() {
$httpBackend.verifyNoOutstandingExpectation();
$httpBackend.verifyNoOutstandingRequest();
});
describe ('getInvite', function() {
beforeEach(function() {
inviteService.token = token;
});
it ('should return the invite', function() {
$httpBackend.expectGET('/invites/' + token + '/get-invite');
inviteService.getInvite();
$httpBackend.flush();
});
});
});
I:
angular.module('myapp.services', [])
.factory('inviteService', ['$rootScope', '$http', function($rootScope, $http) {
var inviteService = {
token: '',
getInvite: function(callback, errorCallback) {
$http.get('/invites/' + this.token + '/get-invite')
.success(function(data) {
callback(data);
})
.error(function(data, status, headers, config) {
errorCallback(status);
});
}
};
return inviteService;
}]);
Bu benim test neye benzediği:
TypeError: parsed is undefined in angular.js (line 13737)
Bu benim hizmet neye benzediği angularjs tabanlı uygulamaları test etmek için oldukça yeni ve angularjs belgelerinde yer alan örneği kullandım:
https://docs.angularjs.org/api/ngMock/service/ $ httpBackend
Ne eksik olduğumdan emin değilim, ve zaten farklı şeyler denedim ve her zaman aynı hatayı alıyorum, herhangi bir yardım takdir edilecektir.
Bir keman http://jsfiddle.net/themyth92/58aLjyp9/1/ oluşturduk ve mükemmel çalışıyor. Belki sorun testin kendisinde değil. Açısal versiyonun ne olduğunu sorabilir miyim? – themyth92
Hey gecikme için özür dilerim, hala sorun yaşıyorum ama keman üzerinde çalıştığını görebiliyorum, açısal v1.2.11 kullanıyorum. Teşekkürler! –
Hmm, kemanı angulr sürümüyle güncelledim ama yine de iyi. Bağlantı: http://jsfiddle.net/58aLjyp9/2/. Bu satırda dikkat edilmesi gereken bir şey "$ httpBackend.expectGET ('/ invites /' + token + '/ get-invite');" Kemanda yaptığım gibi cevap vermeyi unuttun. Her şeyin yolunda gitmediği dışında, kodlanmış değişkenleri çağırdığınız yerde kodunuza bir göz atabilir ya da belki Angularjs'teki $ parse hizmetiyle ilgili olabilir. – themyth92