У меня возникла проблема с тестированием маршрутизатора в моем приложении, которое построено на маршрутизаторе 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 остается пустым.