2016-09-29 57 views
0

这里是我的控制器:

angular.module('someapp', []) 
     .controller('TestCtrl', function($scope, dataservice, $stateParams) { 
      $scope.messageid = parseInt($stateParams.messageid); 
}); 

spec文件:

describe('TestCtrl', function() { 
    beforeEach(module('someapp')); 

    var $controller; 
    $stateParameters = { messageid: 100 }; 
    beforeEach(inject(function(_$controller_){ 
     $controller = _$controller_; 
    })); 

    it('should set value of messageid', function() { 
     var controller = $controller('TestCtrl', { 
      $stateParams: $stateParameters 
     }); 
     expect($scope.messageid).toEqual($stateParameters.messageid); 
    }); 
}); 

但它给错误:TypeError: $controller is not a function

能有人帮我解决这个问题吗?

+0

尝试删除var $ controller; –

回答

0
angular.module('someapp', []) 
     .controller('TestCtrl', ['$scope', '$stateParams', function($scope, $stateParams) { 
      $scope.messageid = parseInt($stateParams.messageid); 
}]); 

describe('TestCtrl', function() { 
    beforeEach(module('someapp')); 

    var $controller; 
    $stateParameters = { messageid: 100 }; 
    beforeEach(inject(function(_$controller_){ 
     $controller = _$controller_; 
    })); 

    it('should set value of messageid', function() { 
     var controller = $controller('TestCtrl', { 
      $stateParams: $stateParameters; 
     }); 
     expect($scope.messageid).toEqual($stateParameters.messageid); 
    }); 
}); 
+0

已更正。但仍然是相同的错误 –

0
describe('TestCtrl', function() { 
    var $scope, dataservice; 
    beforeEach(module('someapp')); 
    module(function ($provide) { 
     // Mock dataservice 
     $provide.service('dataservice', function() { 
      // Assuming you have a getData function in dataservice 
      this.getData = jasmine.createSpy('getData'); 
     }); 
    }); 
    //var $controller; 
    var $stateParameters = { messageid: 100 }; 
    beforeEach(inject(function(_$controller_, _$rootScope_, _dataservice_){ 
     $scope = _$rootScope_.$new(); 
     dataservice = _dataservice_ 
     $controller('TestCtrl', { 
      $scope : $scope, 
      dataservice: dataservice, 
      $stateParams: $stateParameters 
     }); 
    })); 

    it('should set value of messageid', function() { 
     expect($scope.messageid).toEqual($stateParameters.messageid); 
    }); 
}); 
相关问题