Angularjs 从Angular 1.5迁移到1.6时,路由在单元测试中运行

Angularjs 从Angular 1.5迁移到1.6时,路由在单元测试中运行,angularjs,unit-testing,Angularjs,Unit Testing,我已经将我的应用程序迁移到Angular 1.6,突然单元测试不再工作了。经过一点调查,我发现在运行单元测试时启用了路由 我在$routeProvider中额外添加的代码如下: $routeProvider.whenAuthenticated=函数(路径、路由){ route.resolve=route.resolve | |{}; 角度。延伸(route.resolve{ isAuthenticated:['Auth',函数(Auth){ 返回auth.authenticate(); }]

我已经将我的应用程序迁移到Angular 1.6,突然单元测试不再工作了。经过一点调查,我发现在运行单元测试时启用了路由

我在$routeProvider中额外添加的代码如下:

$routeProvider.whenAuthenticated=函数(路径、路由){
route.resolve=route.resolve | |{};
角度。延伸(route.resolve{
isAuthenticated:['Auth',函数(Auth){
返回auth.authenticate();
}]
});
返回$routeProvider.when(路径、路线);

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


ngRoute模块不应包含在单元测试中$route和$routeProvider应该被模拟。angular不应该自己模拟它们吗?角度模拟模块已加载…不,不应该加载。您可以检查ngMock源代码以确定它模拟了哪些服务。但你可以肯定,它只影响核心服务。那么,为什么它一直有效到现在呢?我从Angular 1.2开始就以这种方式编写测试。