在单元测试

时间:2017-03-28 08:22:12

标签: angularjs unit-testing

我已将我的应用迁移到Angular 1.6,突然单元测试不再有效。稍微调查一下后,我发现在运行单元测试时启用了路由。

我添加到$ routeProvider的代码就是这个:



$routeProvider.whenAuthenticated = function (path, route) {
    route.resolve = route.resolve || {};
    
    angular.extend(route.resolve, {
        isAuthenticated: ['Auth', function (auth) {
             return auth.authenticate();
        }]
    });

    return $routeProvider.when(path, route);
};




$routeProvider
    .whenAuthenticated('/', {
        redirectTo: '/dashboards'
    });

在Angular 1.5中,auth.authenticate()永远不会被击中,而在Angular 1.6中,应用会尝试导航到我的一条路线,然后点击auth.authenticate(),并且网址更改为" /仪表板&#34 ;. 有没有人知道1.6中的变化?在测试时我是否需要做一些额外的事情来禁用路由?

1 个答案:

答案 0 :(得分:1)

在1.6中,$ route服务及其依赖项的实例化方式已经改变,默认情况下会在早期实例化。

Migrating from Previous Versions