如何测试广播后是否填充了范围?我在 stackexchange 中搜索并找到了一些 QA,但没有一个回答我的问题。代码工作正常,只是不知道如何测试它。我可以补充一点,我是测试新手,尤其是 Jasmine。
所以,这里是代码:
服务 CrappySvc:
update: function() {
$rootScope.$broadcast('updatecrappy', Crappy.query());
}
控制器 GetCrappyCtrl:
$scope.$on('updatecrappy', function(event, crap) {
$scope.crap = crap;
});
茉莉花:
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'}]);
});
结石