Reputation: 1673
My controller:
angular.module('dr.search.components',[])
.controller('HomeCtrl', function ($scope, $state, $timeout, $interval, $rootScope) {
// code
});
Testing Code (inside describe):
var HomeController, $controller;
var scope, $state, $timeout, $interval,$rootScope;
beforeEach(module('dr.search.components'));
beforeEach(module('ui.router'));
beforeEach(inject(function(_$controller_, _$scope_, _$state_, _$timeout_, _$interval_, _$rootScope_) {
$controller = _$controller_;
scope = _$rootScope_.$new();
$state = _$state_;
$timeout = _$timeout_;
$interval = _$interval_;
$rootScope = _$rootScope_;
HomeController = $controller('HomeCtrl', {$scope: scope, $state: $state, $timeout: $timeout, $interval: $interval, $rootScope: $rootScope});
}));
// Verify our controller exists
it('Home Controller should be defined', function() {
expect(HomeController).toBeDefined();
});
I am testing my controller, if it exists or not. It is showing me Unknown provider: $scopeProvider <- $scope.
Upvotes: 0
Views: 572
Reputation: 4923
Remove $scope from your beforeEach
.
beforeEach(inject(function(_$controller_, _$state_, _$timeout_, _$interval_, _$rootScope_) {
...
}));
Upvotes: 2