У мене виникають проблеми з модульним тестуванням маршрутизатора в моєму додатку, який побудований на маршрутизаторі Angular ui. Я хочу перевірити, чи змінюють переходи стану відповідним чином URL-адресу (пізніше будуть більш складні тести, але тут я починаю.)
Ось відповідна частина мого коду програми:
angular.module('scrapbooks')
.config( function($stateProvider){
$stateProvider.state('splash', {
url: "/splash/",
templateUrl: "/app/splash/splash.tpl.html",
controller: "SplashCtrl"
})
})
І код тестування:
it("should change to the splash state", function(){
inject(function($state, $rootScope){
$rootScope.$apply(function(){
$state.go("splash");
});
expect($state.current.name).to.equal("splash");
})
})
Подібні запитання щодо Stackoverflow (і офіційного тестового коду маршрутизатора інтерфейсу користувача) пропонують обернути виклик $ state.go у $ apply, цього повинно бути достатньо. Але я це зробив, і держава все ще не оновлює. $ state.current.name залишається порожнім.