title: Angular Testing controller results in TypeError: Object #<Object> has no method '$watch'
body: <p>I'm trying to test my controller,
  when I'm running the test I get: </p>
  
  <blockquote>
    <p>TypeError: Object # has no method '$watch'</p>
  </blockquote>
  
  <p>In my controller I use $scope.$watch, how can I solve this issue?</p>
  
  <p><strong>controllerSpecs.js</strong></p>
  
  <pre><code>describe('controllers', function(){
      var scope, ctrl,timeout;
      beforeEach(module('controllers'));
      beforeEach(inject(function($controller) {
          scope = {};
          timeout = {};
          ctrl = $controller('PublishersCtrl', {$scope:scope,APIService:APIService,$timeout:timeout});
      }));
  
      it('should have scope variable equals number', function() {
        expect(scope.number).toBe(3);
      });
  });
  </code></pre>
  
  <p><strong>controller.js:</strong></p>
  
  <pre><code>controller('PublishersCtrl',['$scope','APIService','$timeout',  function($scope,APIService,$timeout) {
      $scope.number = 3;
       /* Make sure second click on order will revert the sorting */
      $scope.$watch('orderByField', function() {
          $scope.reverseSort = true;
      }); // initialize the watch
  
      APIService.get_publisher_list().then(function(data){
          $scope.render_table_and_filters(data);
      });
  }
  </code></pre>
  
  <p><strong>Error:</strong></p>
  
  <pre><code>  TypeError: Object #&lt;Object&gt; has no method '$watch'
         at new &lt;anonymous&gt; (C:/angular-client/app/js/controllers.js:24:12)
  </code></pre>