Привет, я создаю приложение, используя 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;
Это потому, что я не рассматриваю эти утверждения в своих тестовых примерах, поскольку я не знаю, как написать тестовый пример для этого конкретного фрагмента кода. Какие-либо предложения?