Jak przetestować $ scope. $ W AngularJS

Jak przetestować wypełnianie zakresu po emisji? Szukałem i znalazłem kilka QA tutaj w stackexchange, ale żaden nie odpowiedział na mój problem. Kod działa dobrze, po prostu nie wiem, jak go przetestować. Mogę dodać, że jestem nowicjuszem do testowania, a zwłaszcza z Jasmine.

Oto kod:

Usługa CrappySvc:

update: function() {
    $rootScope.$broadcast('updatecrappy', Crappy.query());
}   

Kontroler GetCrappyCtrl:

  $scope.$on('updatecrappy', function(event, crap) {
    $scope.crap = crap;
  });

Jaśmin:

beforeEach(inject(function($rootScope, $httpBackend, $controller, Crappy) {
  rootScope = $rootScope;
  scope = $rootScope.$new();
  Crappy = mockCrappy;

      ...
  spyOn(rootScope, '$broadcast');
      ...

  ctrl = $controller('GetCrappyCtrl', {
  $scope : scope,
  Crappy : mockCrappy
});               

}));

it('$scope.$on should have been triggered', function() {          
  rootScope.$broadcast('updatecrappy', [{id : 2, name : 'crappy'}]);
  expect(rootScope.$broadcast).toHaveBeenCalledWith('updscenes', [{id : 2, name : 'crappy'}]);

});

Kamień

questionAnswers(4)

yourAnswerToTheQuestion