Javascript 否则,在$urlRouterProvider上,当它不应该';单元测试中的t

Javascript 否则,在$urlRouterProvider上,当它不应该';单元测试中的t,javascript,angularjs,unit-testing,angular-ui-router,Javascript,Angularjs,Unit Testing,Angular Ui Router,我在代码中使用ui路由器,下面是我在应用程序中定义状态的方式: $stateProvider .state('base', { url: '/', templateUrl: '../views/base.html', controller: 'BaseCtrl' }) .state('login', { url: '/login',

我在代码中使用ui路由器,下面是我在应用程序中定义状态的方式:

    $stateProvider
        .state('base', {
            url: '/',
            templateUrl: '../views/base.html',
            controller: 'BaseCtrl'
        })
        .state('login', {
            url: '/login',
            templateUrl: 'views/login.html',
            controller: 'LoginCtrl'
        })
        .state('base.all', {
            url: '^/home',
            templateUrl: '../views/all.html',
            controller: 'AllCtrl'
        });

     $urlRouterProvider.otherwise('/home');
我正在对执行此操作的代码进行单元测试:

    $state.transitionTo('login');
在我的茉莉花测试中,我检查:

   expect($state.current.name).toEqual('login');
不幸的是,这最终导致测试失败,并显示以下消息:

Expected 'base.all' to equal 'login'.
我发现问题肯定与$urlRouterProvider有关。否则,我的代码将进入“base.all”而不是“login”状态。为了证明这一点,我注释掉了$urlRouterProvider.OVERSIES语句,然后我的测试开始通过


你知道为什么会这样吗?解决这个问题的方法是什么?

能否将transitiono()调用替换为go()调用


根据,除非您有特殊需要,否则您应该使用go()

请提供有关测试用例和要测试的代码的更多信息。也许改变来自其他地方。我做了,但不幸的是,这没有帮助。