单元测试 – 如何在AngularJS中测试$范围$on
发布时间:2020-12-17 08:14:22 所属栏目:安全 来源:网络整理
导读:在广播后如何测试播放范围?我已经搜索并在stackexchange中找到了几个QA,但没有人回答我的问题。代码正常工作,只是不知道如何测试它。我可以补充说,我是一个新手来测试,特别是茉莉花。 所以,这里是代码: 服务CrappySvc: update: function() { $rootSc
在广播后如何测试播放范围?我已经搜索并在stackexchange中找到了几个QA,但没有人回答我的问题。代码正常工作,只是不知道如何测试它。我可以补充说,我是一个新手来测试,特别是茉莉花。
所以,这里是代码: 服务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',name : 'crappy'}]); }); 石
你需要告诉茉莉花让间谍打电话给实际的$ broadcast功能
spyOn($rootScope,'$broadcast').andCallThrough(); 如果你不使用和CallThrough(),间谍什么都不做。 and.callThrough" rel="nofollow" target="_blank">Jasmine Docs 编辑 使用Jasmine 2,语法将是 spyOn($rootScope,'$broadcast').and.callThrough(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |