Вот мой пробег блок, где я поставил пару свойств на rootScope
, основываясь на пути расположения:
angular.module('xyz').run(['$rootScope', '$location', '$route', function($rootScope, $location, $route){
$rootScope.brand = $location.path().split('/')[1];
$rootScope.appName = $rootScope.brand.split('.')[2];
});
Вот тестовый модуль, который терпит неудачу:
beforeEach(module('App'));
beforeEach(inject(function($controller, _$location_, $rootScope) {
$location = _$location_;
$scope = $rootScope.$new();
AppCtrl = $controller('AppCtrl', { $location: $location, $scope: $scope });
}));
it('AppCtrl has been initialized', inject(function() {
expect(AppCtrl).toBeTruthy();
}));
Пытались что-то вдоль этих линий:
it('should set the default category to match the category_id found in location.hash', function() {
$browser.setUrl('http://server/#/categories/2');
$browser.poll();
scope.$eval();
$browser.xhr.flush();
expect(ctrl.selectedCategory).toBe('2');
});
не помогло.
Спасибо за ваш вклад. Хотя быстрая подстановка на SO могла бы помочь: это делает качество вашего ответа более надежным и доступ к содержимому проще. – AsTeR
Привет @AsTeR. Спасибо за ответ. Но я уже подытожил его в последнем абзаце (хотя я только что исправил небольшую проблему). Можете ли вы предложить обзор о том, как он может быть более полным? –
Ой, думаю, я понял тебя, ты имеешь в виду добавить небольшой пример того, как его контролировать? Попался. Скоро. Спасибо @AsTeR. –