gpt4 book ai didi

angularjs - 如何在 Jasmine 测试中测试 $scope.$on 事件?

转载 作者:行者123 更新时间:2023-12-02 10:46:37 24 4
gpt4 key购买 nike

我正在对 Controller 进行单元测试,并且想测试事件处理程序。假设我的 Controller 看起来像:

myModule.controller('MasterController', ['$scope', function($scope){
$scope.$on('$locationChangeSuccess', function() {
$scope.success = true;
});
}]);

我会在 Jasmine 测试中广播该内容吗?我会发出它吗?有公认的标准吗?

最佳答案

我想出的解决方案如下:

describe('MasterController', function() {
var $scope, $rootScope, controller, CreateTarget;

beforeEach(function() {
inject(function($injector) {
$rootScope = $injector.get('$rootScope');
$scope = $rootScope.$new();

var $controller = $injector.get('$controller');

CreateTarget = function() {
$controller('MasterController', {$scope: $scope});
}
});
});

describe('$locationChangeSuccess', function() {
it('should set $scope.success to true', function() {
controller = CreateTarget();
$rootScope.$broadcast('$locationChangeSuccess');
expect($scope.success).toBe(true);
});
});
});

关于angularjs - 如何在 Jasmine 测试中测试 $scope.$on 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24314885/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com