在单元测试 Angular 1.2 中找到 Bower 依赖项,但找不到 Angular 1.5
Bower dependency found in unit test Angular 1.2, but cannot be found Angular 1.5
我在将 Angular 从 1.2.28 升级到 1.5.5 时遇到问题。代码本身 运行 很有魅力,但我的测试开始失败并显示以下消息。
Unknown provider: storeProvider <- store <- translateStorage
我使用 "a0-angular-storage": "0.0.15" 作为 storeProvider,它通过
提供 'store'
angular.module('angular-storage.store', ['angular-storage.internalStore'])
.provider('store', function() { ...}
[编辑:] 删除了所有代码并引用了 github 存储库,我可以在其中重现该问题。
https://github.com/debrutal/js-hazzle
如果我 运行 1.2.28 angular 的测试(gulp 测试)能够注入存储(语言总是有效,因为它只是应用程序)进入我的测试。 1.5.5 不能这样做。
在 karma 中,我在测试之前加载应用程序,并且在应用程序之前加载 bower 依赖项。
我错过了什么?为什么会这样?
好的,我找到原因了。我的依赖关系组织得不是很好。换句话说,我在应用程序依赖本身中拥有所有外部依赖,而不是在真正需要它的模块中。
我的应用有依赖项:
angular.module('app',['a0-angular-storage','vt.utils'])
和 angular.module('vt.utils',[])
。
对 'a0-angular-storage' 的依赖应该是可传递的,因为只有 vt.utils 使用来自 a0-angular-storage 的服务。模块 'app' 本身不直接依赖于该模块的任何服务。
当我这样做时 beforeEach('vt.utils');
我只是加载了我想测试的模块而不依赖于该模块,所以 karma 无法从该模块找到服务,因为它没有在测试中加载.
现在可能是:
我猜 this 可能是一个原因,为什么 karma 无法检索加载的模块,因为从 angular 1.3 开始,测试在 isolatet 环境中进行。
我为此花了很多时间,有人可以向我确认一下吗?还是我错过了什么?
我在将 Angular 从 1.2.28 升级到 1.5.5 时遇到问题。代码本身 运行 很有魅力,但我的测试开始失败并显示以下消息。
Unknown provider: storeProvider <- store <- translateStorage
我使用 "a0-angular-storage": "0.0.15" 作为 storeProvider,它通过
提供 'store'angular.module('angular-storage.store', ['angular-storage.internalStore']) .provider('store', function() { ...}
[编辑:] 删除了所有代码并引用了 github 存储库,我可以在其中重现该问题。 https://github.com/debrutal/js-hazzle
如果我 运行 1.2.28 angular 的测试(gulp 测试)能够注入存储(语言总是有效,因为它只是应用程序)进入我的测试。 1.5.5 不能这样做。 在 karma 中,我在测试之前加载应用程序,并且在应用程序之前加载 bower 依赖项。
我错过了什么?为什么会这样?
好的,我找到原因了。我的依赖关系组织得不是很好。换句话说,我在应用程序依赖本身中拥有所有外部依赖,而不是在真正需要它的模块中。
我的应用有依赖项:
angular.module('app',['a0-angular-storage','vt.utils'])
和 angular.module('vt.utils',[])
。
对 'a0-angular-storage' 的依赖应该是可传递的,因为只有 vt.utils 使用来自 a0-angular-storage 的服务。模块 'app' 本身不直接依赖于该模块的任何服务。
当我这样做时 beforeEach('vt.utils');
我只是加载了我想测试的模块而不依赖于该模块,所以 karma 无法从该模块找到服务,因为它没有在测试中加载.
现在可能是: 我猜 this 可能是一个原因,为什么 karma 无法检索加载的模块,因为从 angular 1.3 开始,测试在 isolatet 环境中进行。
我为此花了很多时间,有人可以向我确认一下吗?还是我错过了什么?