#angularjs #karma-jasmine
#angularjs #карма-жасмин
Вопрос:
(function (angular) {
'use strict';
var testingModule= angular.module('testingModule', []);
testingModule.factory('testService', [ '$q',
function ($q) {
var service = {
get: null
},
tokenDeferred = $q.defer(),
service.getDataWithPromise = function () {
tokenDeferred.resolve({token: this.token, isAuthenticated: true});
}
});
return tokenDeferred.promise;
};
})(angular)
Когда я пытаюсь написать модульный тест для этого случая, он всегда выдает мне $ q undefined, есть идеи, что может быть не так?
Ниже я описываю способ, которым я внедряю :
beforeEach(inject(function ($q_, _testService_) {
q = $q
fmOauthAccessTokenService = _testService_;
scope = $rootScope.$new();
}));
Комментарии:
1. вы ввели $q_ , но используете
$q
для назначенияq
. Вот почему вы получаете ошибку. Поэтому это должно быть либо $ q , либо просто $ q. Angular разрешает $ q только как $ q . Так что особой разницы не будет.
Ответ №1:
Это должно быть так (пожалуйста, обратите внимание на двойные подчеркивания, окружающие $q
):
beforeEach(inject(function (_$q_, _testService_) {
q = _$q_;
fmOauthAccessTokenService = _testService_;
scope = $rootScope.$new();
}));