У меня есть следующий контроллер ...как проверить угловой элемент привязку в контроллере
angular.module('jobBoard').controller('JobListController', ['$scope','$window', function($scope, $window){
$scope.keywordPlaceholder = 'What kind of job?';
$scope.locationPlaceholder = 'Where? (city, state or zip)';
$scope.onResize = function(){
if ($window.innerWidth <= 480){
$scope.keywordPlaceholder = 'What?';
$scope.locationPlaceholder = 'Where?';
}
}
angular.element($window).bind('resize', function(){
$scope.onResize();
$scope.$apply();
})
$scope.onResize();
$scope.loadJobs();
}]);
и это испытание жасмина ...
describe('JobListController', function(){
var scope, controller;
describe('binding resize to window', function(){
var mockWindow = {
resize: function(){}
}
beforeEach(inject(function($rootScope, $controller){
scope = $rootScope.$new();
$controller('JobListController', { $scope:scope, $window: mockWindow});
}))
it('binds to the resize function', function(){
spyOn(scope, 'onResize');
spyOn(scope, '$apply');
mockWindow.resize();
expect(scope.onResize).toHaveBeenCalled();
expect(scope.$apply).toHaveBeenCalled();
})
})
})
но терпит неудачу на scope.onResize ожидание. Я искал, как сумасшедший, о том, как правильно это сделать, но не может найти правильный ответ. Есть идеи? Благодарю.
Спасибо. Это отлично подходит для хрома, но phantomjs жалуется на новое событие. По-видимому, это проблема с фантомами. –
@geoffswartz: Я опубликовал другое решение, которое хорошо работает в PhantomJS. –