我如何为以下代码编写测试?
$scope.$on('$locationChangeSuccess', function () {
$(".modal-backdrop").removeClass('modal-backdrop');
});
答案 0 :(得分:1)
以下内容应该有效:
beforeEach(function() {
$('body').append('<div id="test" class="modal-backdrop"/>');
});
afterEach(function() {
$('#test').remove();
});
it('should remove the classname on $locationChangeSuccess', function() {
spyOn($scope, '$on').and.callThrough();
$scope.$broadcast('$locationChangeSuccess');
expect($scope.$on).toHaveBeenCalled();
expect($('#test').hasClass('modal-backdrop')).toBe(false);
});
答案 1 :(得分:0)
要触发处理程序功能,您需要在测试中触发事件。这可以这样做:
$scope.$broadcast('$locationChangeSuccess');