gpt4 book ai didi

javascript - 否则在 $urlRouterProvider 上重定向到不应该在单元测试中的状态

转载 作者:行者123 更新时间:2023-12-03 18:32:40 24 4
gpt4 key购买 nike

我在我的代码中使用 ui-router,这是我在我的应用程序中定义状态的方式:

    $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');

在我的 Jasmine 测试中,我检查:

   expect($state.current.name).toEqual('login');

不幸的是,这最终导致测试失败并显示以下消息:

Expected 'base.all' to equal 'login'.

我发现问题肯定与 $urlRouterProvider 有关。否则,因为它使我的代码转到“base.all”而不是“登录”状态。为了证明这一点,我注释掉了 $urlRouterProvider.otherwise 语句,然后我的测试开始通过。

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

最佳答案

能否将 transitionTo() 调用换成 go() 调用?

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

关于javascript - 否则在 $urlRouterProvider 上重定向到不应该在单元测试中的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32515216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com