我已经将我的应用程序迁移到 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()
被击中,并且 url 更改为"/dashboards"。有人知道 1.6 中发生了什么变化吗?在测试时,我是否需要执行其他操作来禁用路由?
在 1.6 中,$route 服务及其依赖项的实例化方式发生了变化,默认情况下,它将在早期实例化。
从以前的版本迁移