Учитывая, что обработчик привязан к событию $routeChangeSuccess для обновления свойства title в $rootScope:
$rootScope.$on('$routeChangeSuccess', function (event, current, previous) {
$rootScope.title = 'My title';
});
в модульных тестах, я ожидаю, что выполнение изменения маршрута обновит свойство title:
it('should set a title on $routeChangeSuccess', function () {
$location.path('/contacts');
$rootScope.$apply();
expect($rootScope.title).toBe('My title');
});
Однако код в обработчике $routeChangeSuccess никогда не выполняется в тестах. Он выполняет штраф и обновляет заголовок при запуске приложения в браузере.
Как я могу запустить событие $routeChangeSuccess в тестах? Есть ли лучший подход к тестированию любого произвольного кода, который привязан к $rootScope. $On ('$ routeChangeSuccess',...) или другие события $routeChange?