0

私はAngularJSでテストするのが新しく、地獄として混乱しています。私は値に依存しているサービスに依存しているコントローラを持っています。私はコントローラーのための非常に基本的なテストを書いただけで、それを把握することができます。しかし、サービスに値を注入すると、コントローラのすべてのテストでUnknown providerエラーが発生します。依存関係を持つangularjsをテストする

私のコードは以下の通りです:

コントローラ

'use strict'; 
angular.module('app') 
    .controller('testController', function($scope, testService) { 

     $scope.$on('$ionicView.enter', function() { 
      $scope.setup(); 
     }); 

     $scope.testFunction = function() { 
      $scope.result = 1; 
     }; 

     $scope.setup = function() { 
      testService.superAwesomeFunction(); 
      $scope.enterValue = 1; 
     }; 

    }); 

サービス

'use strict'; 
angular.module('app') 
    .service('testService', ['URLRoute', function(URLRoute) { 

     var superAwesomeFunction = function() { 
      var URLRequest = URLRoute; 
      console.log(URLRequest); 
     }; 

     return { 
      superAwesomeFunction: superAwesomeFunction 
     }; 
    }]); 

'use strict'; 
angular.module('app') 
    .value('URLRoute', { 
     url: 'https://abcdefghijklmnop.com/api', 
    }); 

test.controller.test.js

'use strict'; 
describe('testController', function() { 
    beforeEach(module('app')); 

    var $controller, 
     $rootScope, 
     $scope; 

    beforeEach(inject(function(_$controller_, _$rootScope_) { 
     $controller = _$controller_; 
     $rootScope = _$rootScope_; 
     $scope = $rootScope.$new(); 

     $controller('testController', { 
      $scope: $scope 
     }); 
    })); 

    describe('$scope.$on(ionicView.enter)', function() { 
     it ('$scope.$on calls $ionicView.enter', function() { 
      spyOn($scope, '$on').and.callThrough(); 
      $scope.$on('$ionicView.enter'); 
      expect($scope.$on).toHaveBeenCalledWith('$ionicView.enter'); 
     }); 
    }); 

    describe('$scope.testFunction', function() { 
     it('Sets the value of result to 1', function() { 
      $scope.testFunction(); 
      expect($scope.result).toEqual(1); 
     }); 
    }); 

    describe('$scope.setup', function() { 
     it('Sets up stuff for the view after it has loaded', function() { 
      $scope.setup(); 
      expect($scope.enterValue).toEqual(1); 
     }); 
    }); 


}); 

テストが今実行すると、私が手にエラーがある:、すべてのヘルプ感謝

Unknown provider: URLRouteProvider <- URLRoute <- testService

この1と非常に混乱して。

答えて

0

これを試してみてください:

'use strict'; 
angular.module('app') 
.service('testService', [ function(URLRoute) { 

    var superAwesomeFunction = function() { 
     var URLRequest = URLRoute; 
     console.log(URLRequest); 
    }; 

    return { 
     superAwesomeFunction: superAwesomeFunction 
    }; 
}]); 

からそれを手に入れた: lostechies

+0

うんので、これは角有効ではありませんが、私はあなたがそれを縮小化し、それをしようとするために、角括弧を取り除くことだったもので何を考えてそう?そうであれば、同じエラーが発生します –

関連する問題