为什么 Angular 单元测试加载 $route?
Why do Angular unit tests load $route?
更新到 Angular 1.5.3(从 1.4.9 开始)后,我所有的单元测试都开始失败,而它们之前是可以工作的。
错误如下:
Error: [$injector:unpr] Unknown provider:
AuthenticationHttpInterceptorProvider
<- AuthenticationHttpInterceptor
<- $http
<- $templateRequest
<- $route
预期 AuthenticationHttpInterceptorProvider 此时未知,因为它是未在此处进行单元测试的不同模块的一部分。如果我为这个拦截器提供一个模拟,我会得到一个错误,即 $httpBackend 不期待对定义的默认路由的 GET 请求。
我的问题是:为什么首先加载 $route,我该如何防止它?我没有对任何路由进行单元测试,也没有对$route 在定义路由的应用程序中的 .config 阶段之后。我希望永远不会收到任何对路由视图的 templateUrls 的请求。
我无法在 Angular 更新日志中找到任何让我期待新版本会有不同行为的内容。
$route
服务被ngRoute强制实例化since 1.5.1:
Ensure $route
will be instantiated in time to capture the initial
$locationChangeSuccess
event. This is necessary in case ngView
is
ncluded in an asynchronously loaded template.
这是 the issue 的修复。
这意味着 ngRoute
应该是应用程序路由模块的依赖项,而不是其他测试模块。
更新到 Angular 1.5.3(从 1.4.9 开始)后,我所有的单元测试都开始失败,而它们之前是可以工作的。
错误如下:
Error: [$injector:unpr] Unknown provider:
AuthenticationHttpInterceptorProvider
<- AuthenticationHttpInterceptor
<- $http
<- $templateRequest
<- $route
预期 AuthenticationHttpInterceptorProvider 此时未知,因为它是未在此处进行单元测试的不同模块的一部分。如果我为这个拦截器提供一个模拟,我会得到一个错误,即 $httpBackend 不期待对定义的默认路由的 GET 请求。
我的问题是:为什么首先加载 $route,我该如何防止它?我没有对任何路由进行单元测试,也没有对$route 在定义路由的应用程序中的 .config 阶段之后。我希望永远不会收到任何对路由视图的 templateUrls 的请求。
我无法在 Angular 更新日志中找到任何让我期待新版本会有不同行为的内容。
$route
服务被ngRoute强制实例化since 1.5.1:
Ensure
$route
will be instantiated in time to capture the initial$locationChangeSuccess
event. This is necessary in casengView
is ncluded in an asynchronously loaded template.
这是 the issue 的修复。
这意味着 ngRoute
应该是应用程序路由模块的依赖项,而不是其他测试模块。