Angular ui router unit testing (stany do adresów URL)

Mam pewne problemy z testowaniem routera w mojej aplikacji, która jest zbudowana na routerze UI Angular. Chcę przetestować, czy przejścia między stanami odpowiednio zmieniają adres URL (później będą bardziej skomplikowane testy, ale właśnie tam zaczynam).

Oto odpowiednia część mojego kodu aplikacji:

angular.module('scrapbooks')
 .config( function($stateProvider){
    $stateProvider.state('splash', {
       url: "/splash/",
       templateUrl: "/app/splash/splash.tpl.html",
       controller: "SplashCtrl"
    })
 })

I kod testowy:

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");
  })
})

Podobne pytania dotyczące Stackoverflow (i oficjalnego kodu testowego routera ui) sugerują, że zawijanie wywołania $ state.go w $ apply powinno wystarczyć. Ale zrobiłem to i stan wciąż się nie aktualizuje. $ state.current.name pozostaje pusty.

questionAnswers(6)

yourAnswerToTheQuestion