2017-02-01 5 views
1

私のAuthentication.Loginサービス機能をテストしたいと思います。

このサービスでは、別のサービスとcookiestore.putメソッドが呼び出されます。

私は両方の機能を模擬したいと思います。しかし、イムは、まだエラーが出る:/

私はジャスミンでspyon機能でそれを試してみるが、それは仕事をdoesntの:

spyOn('base64', 'encode').and.returnValue(username + ';' + password); 
spyOn('cookie', 'put').and.returnValue(username); 

誰も私を助けることができますか?

これは、認証サービスである:$provideを使用して

function (Base64, $http, $cookieStore, $rootScope, $q) { 
     //initialize service 
     var service = {}; 

     service.Login = function (username, password) { 
      //initialize promise object for asynchron behavior of the data 
      var deferred = $q.defer(); 

      var authdata = Base64.encode(username + ':' + password); 

      //put login data in global variable to access in the root scope 
      $rootScope.globals = { 
       currentUser: { 
        username: username, 
        authdata: authdata 
       } 
      }; 

      //put base64 data in header 
      $http.defaults.headers.common['Authorization'] = 'Basic ' + authdata; 
      //put login data in cookie to keep user logged in, if he refresh the page 
      $cookieStore.put('globals', $rootScope.globals); 

答えて

0

オーバーライドサービス:

var cookieStoreMock = { 
    put: function() { 
    return username; 
    } 
} 

module(function($provide) { 
    $provide.value('$cookieStore', cookieStoreMock); 
}); 

describe(... 
+0

はあなたに感謝!私は明日それを試し、あなたに通知します:) – Kanissell

+1

thatsそれはありがとう! – Kanissell

関連する問題