2016-10-18 11 views
0
(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が未定義となります。 ($qを囲む二重のアンダースコアに注意してください)

beforeEach(inject(function ($q_, _testService_) { 
    q = $q 
     fmOauthAccessTokenService = _testService_; 

     scope = $rootScope.$new(); 

    })); 
+0

あなたが注入されてきました* $のQ_をが、 '$ q'を使って' q'に代入しています。だからあなたはエラーを受けている。 これは、$ q_または$ qのいずれかである必要があります。角度分解は_ $ q_を$ qとしてのみ行います。だから大きな違いはありません。 –

答えて

1

は、それは次のようにする必要があります::以下

は私が注入しています方法をIUS *

beforeEach(inject(function (_$q_, _testService_) { 
    q = _$q_; 
     fmOauthAccessTokenService = _testService_; 

     scope = $rootScope.$new(); 

    })); 
関連する問題