Привет Я создаю приложение, используя AngularJS
, и теперь я нахожусь на модуле, тестирующем мое приложение. Я знаю, как писать единичные тестовые примеры для служб, контроллеров и т. Д. Но я не знаю, написать это для $routeChangeStart
.
У меня следующий код в моем app.js
app.run(function ($rootScope, $location, AuthenticationService) {
$rootScope.$on('$routeChangeStart', function() {
if (AuthenticationService.isLoggedIn()) {
$rootScope.Authenticated = 'true';
$rootScope.Identity = localStorage.getItem('identification_id');
} else {
$rootScope.Authenticated = 'false';
$rootScope.Identity = localStorage.removeItem('identification_id');
}
});
});
Я написал этот код, чтобы выяснить, является ли зарегистрирован пользователь или нет для каждого маршрутизации в моем приложении. Для этого я написал услугу AuthenticationService
;
app.factory('AuthenticationService', function (SessionService) {
return {
isLoggedIn: function() {
return SessionService.get('session_id');
}
};
});
И мой сеансовый сервис нравится;
app.factory('SessionService', function() {
return {
get: function (key) {
return localStorage.getItem(key);
}
};
});
Я использую Jasmine
писать тестовые случаи и с использованием Istanbul
для покрытия кода. Когда я запускаю свой тест с помощью Grunt
, я получаю что-то вроде этого в своем приложении app.js;
Это потому, что я не перекрыто эти заявления в моих тестах я не знаю, как написать тестовый пример для этой конкретной части коды. Какие-либо предложения?
У вас есть маршрут, определенный в вашем приложении? –